Criando drivers de miniporta KMDF

Alguns drivers de miniporta podem usar Kernel-Mode Driver Framework, se a arquitetura de porta/miniporto permitir que o driver de miniporto se comunique com outros drivers usando interfaces WDM ou de estrutura. Por exemplo, drivers de miniporta NDIS com uma borda inferior do WDM podem usar a estrutura para implementar a borda inferior.

Se você quiser que o driver de miniporta use a estrutura , o driver deverá:

  • Defina o sinalizador WdfDriverInitNoDispatchOverride no membro DriverInitFlags da estrutura WDF_DRIVER_CONFIG do driver antes de chamar WdfDriverCreate. Definir esse sinalizador permite que o driver de porta, em vez da estrutura, intercepte os IRPs (pacotes de solicitação de E/S) que o gerenciador de E/S direcionou para o driver.

  • Chame WdfDeviceMiniportCreate em vez de WdfDeviceCreate para criar objetos de dispositivo de estrutura para os dispositivos do driver de miniport. O driver de miniporta deve chamar WdfDeviceMiniportCreate quando seu driver de porta informar que um dispositivo está disponível.

  • Chame WdfObjectDelete para excluir o objeto de dispositivo que WdfDeviceMiniportCreate cria, quando o driver determina que o dispositivo foi removido. (Como o driver definiu o sinalizador WdfDriverInitNoDispatchOverride , a estrutura não pode determinar quando o dispositivo é removido e não pode excluir o objeto do dispositivo.)

  • Chame WdfDriverMiniportUnload quando o driver de porta informar ao driver de miniporto que ele está prestes a ser descarregado.

Um driver de miniporta só poderá usar a estrutura se o dispositivo subjacente der suporte a Plug and Play (PnP). Os drivers de miniporto não podem usar os objetos do dispositivo de controle da estrutura.

As restrições se aplicam aos objetos de dispositivo criados pelo método WdfDeviceMiniportCreate . Para obter uma lista dessas restrições, consulte WdfDeviceMiniportCreate.