Compartilhar via


Diretrizes de design para dispositivos iniciais

  • O gerenciador PnP falha ao criar solicitações para o dispositivo até que o IRP_MN_START_DEVICE IRP seja concluído, indicando que todos os drivers do dispositivo realizaram suas operações de início.

  • Como uma rotina DispatchPnP é executada no contexto de um thread do sistema no IRQL PASSIVE_LEVEL, qualquer memória alocada com ExAllocatePoolWithTag para uso exclusivamente durante a inicialização pode ser do pool de páginas, desde que o driver não controle o dispositivo que contém um arquivo de página do sistema. Essa alocação de memória deve ser lançada com ExFreePool antes que a rotina DispatchPnP retorne o controle.

  • O ISR de um driver de dispositivo WDM deve ser capaz de determinar se ele foi chamado com uma interrupção espúria mesmo durante a inicialização do dispositivo. Ao retornar da chamada para IoConnectInterrupt no caminho de código que manipula IRP_MN_START_DEVICE, o ISR poderá ser chamado imediatamente se as interrupções estiverem habilitadas no dispositivo.