Partilhar via


Regra PnpSurpriseRemove (wdm)

A regra PnpSurpriseRemove especifica que o driver não chama IoDeleteDevice ou IoDetachDevice durante o processamento de uma solicitação de IRP_MN_SURPRISE_REMOVAL .

O gerenciador de PnP envia a solicitação IRP_MN_SURPRISE_REMOVAL para notificar os drivers de que um dispositivo não está mais disponível para operações de E/S e que ele provavelmente foi removido inesperadamente do computador.

  • Todos os drivers PnP devem lidar com IRP_MN_SURPRISE_REMOVAL solicitação .
  • O driver não deve chamar IoDeleteDevice ou IoDetachDevice em objetos de dispositivo até que a IRP_MN_SURPRISE_REMOVAL IRP seja bem-sucedida e todas as alças abertas para o dispositivo sejam fechadas.
  • Em seguida, o gerenciador PnP envia uma solicitação IRP_MN_REMOVE_DEVICE para a pilha do dispositivo. Em resposta à remoção do IRP, os drivers desanexam seus objetos de dispositivo da pilha e os excluem.

Para obter mais informações sobre como um driver deve responder a IRP_MN_SURPRISE_REMOVAL solicitação, consulte Manipulando uma solicitação de IRP_MN_SURPRISE_REMOVAL

Modelo de driver: WDM

Como testar

Em tempo de compilação

Execute o Verificador de Driver Estático e especifique a regra PnpSurpriseRemove .

Use as seguintes etapas para executar uma análise do código:
  1. Prepare seu código (use declarações de tipo de função).
  2. Execute o Verificador de Driver Estático.
  3. Exiba e analise os resultados.

Para obter mais informações, consulte Usando o Verificador de Driver Estático para localizar defeitos em drivers.

Aplica-se a

IoDeleteDeviceIoDetachDevice

Confira também

Manipulando uma solicitação de IRP_MN_SURPRISE_REMOVALanalisando um driver usando ferramentas de verificação e análise de códigoIRP_MN_SURPRISE_REMOVALIRP_MN_REMOVE_DEVICE