Compartilhar via


Criando um novo driver de filtro

Neste tópico, explicamos como usar o Visual Studio para começar a escrever um novo driver de filtro. Os drivers de filtro são diferentes dos drivers de função do dispositivo, dos drivers de software e dos drivers do sistema de arquivos, que abordamos em outros tópicos. Para saber mais sobre drivers de filtro e como eles diferem de outros tipos de drivers, consulte os tópicos a seguir.

Para começar, primeiro determine qual modelo de driver é apropriado para o driver de filtro. Para obter ajuda para determinar qual modelo é melhor para você, consulte Escolhendo um modelo de driver. Se você estiver escrevendo um driver de filtro para um dispositivo de hardware, determine onde seu dispositivo se encaixa na lista de tecnologias descritas em Tecnologias de Dispositivo e Driver. Consulte a documentação dessa tecnologia específica para ver se há alguma orientação para escolher um modelo de driver de filtro. O modelo de driver de filtro recomendado varia de uma tecnologia para outra. Para algumas tecnologias, a documentação recomenda usar o UMDF (User Mode Driver Framework), o KMDF (Kernel Mode Driver Framework) ou o WDM (Modelo de Driver do Windows). Para outras tecnologias, a documentação fornece detalhes explícitos sobre como escrever um driver de filtro. Algumas tecnologias têm minifiltrar modelos. Para algumas tecnologias, pode não haver nenhuma recomendação para um modelo de driver de filtro.

Em seguida, determine quais dos seguintes casos descrevem a recomendação do modelo de driver e siga as etapas:

Caso 1: a documentação da sua tecnologia recomenda o UMDF.

  1. No Visual Studio, no menu Arquivo , escolha Novo | Projeto.
  2. Na caixa de diálogo Novo Projeto, no painel esquerdo, localize e selecione Visual C++ | Windows Driver | WDF.
  3. No painel central, selecione Driver do Modo de Usuário (UMDF).
  4. Preencha as caixas Nome e Local e selecione OK. Para obter mais informações, consulte Escrevendo um driver UMDF com base em um modelo. Nota Ao criar um novo driver UMDF, você deve selecionar um nome de driver que tenha 32 caracteres ou menos. Esse limite de comprimento é definido em wdfglobals.h.
  5. Neste ponto, você tem um projeto de driver que implementa o código geral exigido pela maioria dos drivers UMDF. Agora você pode fornecer o código específico para o filtro.

Caso 2: a documentação da sua tecnologia recomenda o KMDF.

  1. No Visual Studio, no menu Arquivo , escolha Novo | Projeto.
  2. Na caixa de diálogo Novo Projeto, no painel esquerdo, localize e selecione WDF.
  3. No painel central, selecione KmDF (Driver do Modo Kernel).
  4. Preencha as caixas Nome e Local e selecione OK. Para obter mais informações, consulte Escrevendo um driver KMDF com base em um modelo. Nota Ao criar um novo driver KMDF, você deve selecionar um nome de driver que tenha 32 caracteres ou menos. Esse limite de comprimento é definido em wdfglobals.h.
  5. Neste ponto, você tem um projeto de driver que implementa o código geral exigido pela maioria dos drivers KMDF. Agora você pode fornecer o código específico para o filtro.

Caso 3: a documentação da sua tecnologia descreve um filtro específico ou um modelo de minifiltro.

Se a tecnologia do dispositivo tiver um modelo de filtro ou minifiltro específico, marcar para ver se o Visual Studio tem um modelo para o modelo.

  1. No Visual Studio, no menu Arquivo , escolha Novo | Projeto.
  2. Na caixa de diálogo Novo Projeto, no painel esquerdo, localize e selecione Modelos | Visual C++ | Driver do Windows.
  3. Procure a lista de modelos instalados para ver se há um modelo para o tipo de filtro que você precisa escrever. Por exemplo, você pode escolher o modelo Driver de Filtro: NDIS em Rede.
  4. Se não houver modelo para o tipo de driver de filtro em Driver do Windows, selecione Online e navegue pelos modelos disponíveis online.
  5. Se você encontrar um modelo para o tipo de driver de filtro, selecione o modelo, preencha as caixas Nome e Localização e selecione OK.
  6. Neste ponto, você tem um projeto de driver que implementa o código geral exigido pelo driver de filtro. Agora você pode fornecer o código específico para o filtro. Consulte a documentação de sua tecnologia para saber mais sobre as funções que você precisa implementar.

Se a tecnologia do dispositivo tiver um modelo de filtro específico ou um modelo de minifiltro e você não encontrar um modelo para o tipo de driver de filtro, consulte a documentação específica da tecnologia para obter diretrizes para determinar se deseja usar UMDF, KMDF ou WDM.

Caso 4: a documentação da sua tecnologia recomenda o WDM.

  1. No Visual Studio, no menu Arquivo , escolha Novo | Projeto.

  2. No Visual Studio, na caixa de diálogo Novo Projeto, em Driver do Windows, selecione WDM.

  3. Preencha as caixas Nome e Local e selecione OK.

  4. Neste ponto, você tem um projeto de driver WDM vazio. Na janela Gerenciador de Soluções, selecione e segure (ou clique com o botão direito do mouse) no projeto do driver e escolha Adicionar | Novo Item.

  5. Na caixa de diálogo Adicionar Novo Item, selecione Arquivo C++ (.cpp), insira um nome para o arquivo e selecione OK.

    Nota Se você quiser criar um arquivo .c em vez de um arquivo .cpp, insira um nome que tenha a extensão .c .

  6. Implemente as funções exigidas pelo filtro. Ao implementar e organizar suas funções, você pode decidir adicionar arquivos .cpp ou .c adicionais.

Caso 5: a documentação da tecnologia não tem uma recomendação para um modelo de driver de filtro.

  1. Determine se UMDF, KMDF ou WDM é o melhor modelo para o driver de filtro. Para obter ajuda, consulte Escolhendo um modelo de driver.

  2. No Visual Studio, no menu Arquivo , escolha Novo | Projeto.

  3. No Visual Studio, na caixa de diálogo Novo Projeto, em Driver do Windows, selecione um dos seguintes modelos:

    • WDF | Driver de Modo de Usuário (UMDF)
    • WDF | Driver do modo Kernel (KMDF)
    • WDM | Driver de Kernel vazio

    Nota Ao criar um novo driver KMDF ou UMDF, você deve selecionar um nome de driver que tenha 32 caracteres ou menos. Esse limite de comprimento é definido em wdfglobals.h.

  4. Implemente as funções exigidas pelo filtro. Crie novos arquivos .c ou .cpp conforme necessário.

Se você não tiver certeza de qual modelo usar, considere ler ou postar no fórum de Desenvolvimento de Driver e WDK de Hardware do Windows .