logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog

follow us in feedly

Como fazer drivers para Windows NT/2000/XP/2003, parte 2

Parte 2 = continuação da parte 1 :-)

Já leu os livros recomendados na parte 1? Eu sei que leu! Então vamos ao que mais precisamos para fazer um driver.

Driver Development Kit (DDK)

O DDK é o SDK para fazer drivers, ele contém os headers C e todas as ferramentas necessárias para todas as etapas do desenvolvimento de um driver. Quando eu digo "todas as ferramentas necessárias" é verdade, até o compilador é incluído no DDK. É possível compilar drivers usando o VC++ 6 ou superior, mas é altamente não recomendado. Essa configuração não é suportada pela Microsoft, e o pessoal do newsgroup de drivers da Microsoft geralmente se recusa a responder perguntas relativas a compilação quando o "perguntador" usa essa configuração.

Para obter o DDK você tem duas opções. A primeira é ter uma assinatura MSDN. Dessa forma é só entrar no "Subscriber Downloads" e baixá-lo. Para quem não tem uma assinatura MSDN, a opção é entrar no site do Windows DDK e pagar US$ 25,00 para que a Microsoft envie o DDK pelo correio.

O DDK também vem com vários samples para várias arquiteturas de drivers (USB, SCSI, NDIS, etc) e a documentação (que também pode ser encontrada na MSDN online). A maioria dos samples são muito bons e muito bem documentados. Além disso, em boa parte das arquiteturas é recomendável que você comece a fazer seu driver a partir de um sample (ao invés de começar do zero). Drivers WDM, por exemplo, devem gerenciar Plug'n'Play, e só essa parte do código tem umas 2000 linhas...

Existe somente uma categoria de drivers que não pode ser feita com o DDK: os drivers relacionados com File System (File Systems e filtros). Para esse tipo de driver é necessário comprar o IFS Kit (Installable File System Kit), que custa a bagatela de US$ 899,00 (um amigo meu costumava dizer que era o arquivo .h mais caro que ele conhecia. Até ele perguntar para o pessoal da OSR o preço do kit de File System deles...). Os antívirus com scan em tempo real, por exemplo, são implementados como filtros de File System.

É bom lembrar que, apesar da palavra driver ser quase sempre usada para denominar um software que controla um hardware (driver da placa de som, por exemplo), no Windows é comum chamar de driver todo software que roda em kernel mode, mesmo que ele não controle hardware. Firewalls e filtros de file system são exemplos de drivers que não controlam hardware. Mesmo assim, no Windows existem alguns drivers que rodam em user mode.

Editor de código C/C++

Apesar de ser possível escrever um driver usando o Bloco de Notas, é recomendável que você use um editor apropriado para isso. Eu costumo usar o Visual Studio.NET, usando o "MakeFile Project" para compilar o driver usando o compilador do DDK e não o Visual C++. Você pode usar o editor de sua preferência.


Em 19/02/2005 00:39, por Rodrigo Strauss


  
 
 
Comentários
Ricardo Tozzi | e-mail | em 06/04/2005 | #
Cara,

Belezura?

Gostaria de saber como compilo um driver usando o .NET (sem DDK, pois não o tenho). Você disse que tem jeito usando o MAKEFILE.
Poderia me ajudar?


Grato,


Ricardo Tozzi.
Rodrigo Strauss | website | em 06/04/2005 | #
Espero que ".NET" queira dizer "Visual Studio.NET" e não "alguma linguagem .NET". Drivers só podem ser feitos em C ou C++.

O DDK é necessário para compilar os drivers. Apesar de você pode usar outro compilador, os headers que você precisa estão no DDK.
Érico da Silva | em 03/05/2005 | #
Ótimas dicas pra construçao de Drivers,

eu to com um problema, nao consigo achar o driver sample usb q vem com o ddk, vc sabe onde posso encontrar pra download??

Obrigado.
Rodrigo Strauss | website | em 18/07/2005 | #
Instale o DDK com os samples, ele está lá.
Fernando Roberto | website | e-mail | em 08/12/2006 | #
Por falar em exemplos do DDK, o WDK RTM 6000 (já disponível para download no http://connect.microsoft.com) tráz o precioso IFS sem qualquer custo. Entretando, dêem uma olhada no EULA do WDK antes de construir sua solução baseada em um exemplo do Kit. Existem restrições adicionais neste novo build que merecem a sua atenção.

[]s,
Fernando.
Júnior | em 12/06/2012 | #
Até que enfim achei algo sobre criação de drivers em português de uma forma clara. Vlw, e continue compartilhando informações =D
Algo a dizer?
Nome:


Site:


E-mail:


Escreva o número vinte e seis:


 Não mostre meu e-mail no site, não serve pra nada mesmo...

Comentário





Os comentários devem ser sobre assuntos relativos ao post, eu provavelmente apagarei comentários totalmente offtopic. Se quiser me enviar uma mensagem, use o formulário de contato. E não esqueça: isso é um site pessoal e eu me reservo o direito de apagar qualquer comentário ofensivo ou inapropriado.
rebarba rebarba
  ::::