Trabalho unificado com todos os dispositivos de um computador pessoal no Windows, bem como algumas outras funções do sistema operacional são fornecidas por um conjunto de drivers. Para escrever drivers, você precisa ter um bom conhecimento de programação, os princípios do kernel e vários subsistemas do Windows.
Necessário
Kit de desenvolvimento de driver do Windows
Instruções
Passo 1
Baixe a distribuição do Windows Driver Development Kit (DDK) em microsoft.com (disponível para assinantes do MSDN) e instale-o em seu computador. Este pacote contém todas as ferramentas necessárias para desenvolver e construir drivers (compilador, vinculador, arquivos de cabeçalho, bibliotecas), bem como documentação abrangente.
Passo 2
Estude detalhadamente toda a documentação disponível sobre como escrever drivers para Windows. Use as informações de referência do DDK e do tópico relacionado do MSDN (msdn.microsoft.com). Você deve compreender totalmente todos os aspectos do Windows Driver Model (WDM) e compreender os conceitos básicos de arquitetura. Você deve compreender claramente as diferenças entre os drivers do modo de usuário e do modo kernel, drivers de dispositivo e drivers do sistema de arquivos. Você precisa conhecer os recursos de diferentes classes de drivers, seus tipos (drivers de barramento, filtros, drivers funcionais) e subtipos (drivers de vídeo, modems, dispositivos de rede, portas paralelas e seriais, dispositivos de armazenamento). Preste atenção especial aos princípios de E / S orientada a pacotes com IRPs reutilizáveis, gerenciamento de memória, tratamento de exceções e a aplicação correta de objetos de sincronização.
etapa 3
Defina claramente a funcionalidade do driver que está sendo desenvolvido. Com base nisso, determine a que tipo e classe ele pertence.
Passo 4
Selecione uma linguagem de programação. Tradicionalmente, os drivers do modo kernel são implementados em C. Os drivers do modo do usuário geralmente são desenvolvidos em C ++. Existem várias exceções a essas regras. Por exemplo, minidrivers cliente para fluxos de áudio e vídeo, drivers de áudio WDM para miniportas de modo kernel, drivers WIA e, às vezes, drivers de vídeo são escritos em C ++.
Etapa 5
Crie um projeto que implemente o stub do driver. Explore o diretório DDK com exemplos. Encontre o projeto de demonstração de driver correto. Se você não conseguir encontrar um exemplo adequado, crie você mesmo os arquivos que contêm o código-fonte necessário e os arquivos de script de construção. Por exemplo, ao desenvolver um driver de modo kernel, você precisa implementar a função DriverEntry, que contém o código de inicialização, bem como algumas rotinas padrão (como AddDevice, StartIo, etc.).
Etapa 6
Implemente a funcionalidade do driver. Adicione código às funções criadas na etapa anterior. Adicione lógica para lidar com solicitações de E / S, etc.