Iniciando um dispositivo

O gerenciador de PnP envia uma solicitação IRP_MN_START_DEVICE aos drivers para iniciar um dispositivo recém-enumerado ou para reiniciar um dispositivo existente que foi interrompido para reequilíbrio de recursos.

Os drivers de função e filtro devem definir uma rotina IoCompletion , passar o IRP_MN_START_DEVICE solicitar a pilha do dispositivo e adiar suas operações de início até que todos os drivers inferiores tenham terminado com o IRP. O motorista do barramento pai, o driver inferior na pilha do dispositivo, deve ser o primeiro driver a executar suas operações de início em um dispositivo antes que o dispositivo seja acessado por outros drivers.

Para garantir o sequenciamento adequado das operações de início, o gerenciador PnP no Windows 2000 e versões posteriores do Windows adia a exposição de interfaces de dispositivo e bloqueia a criação de solicitações para o dispositivo até que o IRP inicial seja bem-sucedido.

Se um driver de um dispositivo falhar na solicitação IRP_MN_START_DEVICE , o gerenciador PnP enviará uma solicitação IRP_MN_REMOVE_DEVICE para a pilha de dispositivos (no Windows 2000 e versões posteriores do Windows). Em resposta a esse IRP, os drivers do dispositivo desfazem suas operações de início (se tiverem êxito no IRP inicial), desfazem suas operações addDevice e desanexam da pilha de dispositivos. O gerenciador PnP marca esse dispositivo como "início com falha".

Esta seção contém os seguintes tópicos:

Iniciando um dispositivo em um driver de funções

Iniciando um dispositivo em um driver de filtro

Iniciando um dispositivo em um motorista de barramento

Diretrizes de design para dispositivos iniciais