Compartilhar via


Dicas e requisitos de implementação para borda inferior do WDM

Este tópico descreve dicas e requisitos para implementar um driver de miniporta NDIS-WDM. Um driver de miniporta NDIS-WDM pode chamar funções NDIS e não NDIS. Essas funções não NDIS incluem, por exemplo, rotinas e funções de suporte do WDM-kernel-mode para uma interface de driver de barramento específica.

Ao implementar um driver de miniporta NDIS-WDM, tenha o seguinte em mente:

  • A criação de um driver de miniporto NDIS-WDM requer que o sinalizador NDIS_WDM seja definido antes que o arquivo de cabeçalho Ndis.h seja incluído. Definir o sinalizador NDIS_WDM garante que o Ndis.h inclua automaticamente o arquivo de cabeçalho do WDM apropriado. O sinalizador NDIS_WDM deve ser inserido no início do código-fonte do driver de miniporto ou definido no arquivo Sources do driver de miniport. Um driver de miniporto NDIS-WDM requer um arquivo de cabeçalho WDM para chamar rotinas de modo kernel, como IoCallDriver e IoAllocateIrp.

  • As chamadas de função para uma interface de driver de barramento específica exigem os arquivos de cabeçalho para esse driver de barramento.

  • Não é recomendável incluir cabeçalhos NDIS e não NDIS no mesmo arquivo de origem porque eles podem não ser compatíveis. Ou seja, arquivos de origem separados devem ser criados para código que chama funções NDIS e para código que chama funções não NDIS.

  • Um driver de miniporto NDIS-WDM deve chamar funções NDIS apropriadas para alocar e liberar recursos, a menos que o driver de miniporto NDIS-WDM aloque e libere recursos em um dos seguintes cenários:

    • Um recurso, normalmente um recurso de memória, é alocado pelo driver de miniporta NDIS-WDM e, posteriormente, é liberado por uma entidade não NDIS, como uma interface de driver de barramento,
    • Um recurso, normalmente um recurso de memória, é alocado por uma entidade não NDIS e, posteriormente, é liberado pelo driver de miniporto NDIS-WDM.

    Para os cenários anteriores, o driver de miniporta NDIS-WDM deve chamar as rotinas apropriadas do WDM para alocar ou liberar recursos para a entidade não NDIS.