Inicializando um driver de miniporto com uma borda inferior do WDM

Depois que um driver de miniporto tiver sido carregado pelo sistema operacional, o NDIS chamará a função MiniportInitializeEx do driver de miniport para inicializar uma instância de miniporta que o driver de miniporto gerencia. Para se comunicar por meio de uma instância de miniporto que tenha uma borda inferior do WDM, o driver de miniporto deve recuperar informações específicas para configurar suas comunicações.

Durante a inicialização dessa instância de miniporto, o driver de miniporto deve chamar a função NdisMGetDeviceProperty para recuperar objetos de dispositivo necessários para configurar a comunicação com a instância de miniporto por meio de uma interface WDM. Nessa chamada, o driver de miniporto passa o identificador para a instância de miniport no parâmetro MiniportAdapterHandle e buffers que recebem ponteiros para DEVICE_OBJECT estruturas. O driver de miniporta usa o ponteiro recuperado para o objeto next-device (parâmetro NextDeviceObject ) para criar e enviar IRPs. Para obter mais informações, consulte Manipulando IRPs.

Um driver de miniporta com uma borda inferior do WDM deve ser um driver de miniporta desserializado. Um driver de miniporta desserializado gerencia sua própria fila de solicitações de envio e recebimento internamente sempre que não tem recursos suficientes para lidar com essas solicitações imediatamente; se um driver de miniporta não for desserializado, o NDIS gerenciará essa fila. Um driver de miniporta NDIS-WDM deve ser desserializado porque envia e recebe pacotes fora do contexto de chamadas NDIS. Durante a inicialização de uma instância de miniport, um driver de miniporto NDIS-WDM deve especificar o recurso desserializado. Todos os drivers de miniporta NDIS 6.0 e posterior são desserializados.

Observe que um driver de miniporta NDIS-WDM não pode ser um driver intermediário (um driver que expõe uma interface de driver de miniporta na parte superior e uma interface de driver de protocolo na parte inferior).