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