Compartilhar via


Regra PnpSurpriseRemove (wdm)

A regra PnpSurpriseRemove especifica que o driver não chama IoDeleteDevice ou IoDetachDevice durante o processamento de uma solicitação 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 o IRP do IRP_MN_SURPRISE_REMOVAL seja bem-sucedido e todas as alças abertas para o dispositivo sejam fechadas.
  • O gerenciador PnP envia uma solicitação IRP_MN_REMOVE_DEVICE para a pilha de dispositivos. 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 : do WDM

Como testar

Em tempo de compilação

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

Use as seguintes etapas para executar uma análise do código:
  1. Preparar seu código (usar declarações de tipo de função).
  2. Executar Verificador de Driver Estático.
  3. Exibir e analisar os resultados.

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

Aplica-se a

IoDeleteDeviceIoDetachDevice

Consulte também

tratando uma solicitação de IRP_MN_SURPRISE_REMOVALIRP_MN_SURPRISE_REMOVALIRP_MN_REMOVE_DEVICE