Partilhar via


Regra PnpSurpriseRemove (wdm)

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

O gerenciador PnP envia a solicitação de 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 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 IRP_MN_SURPRISE_REMOVAL seja bem-sucedido e todas as alças abertas para o dispositivo sejam fechadas.
  • Em seguida, o gerenciador PnP envia uma solicitação de IRP_MN_REMOVE_DEVICE para a pilha de dispositivos. Em resposta ao IRP de remoção, 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 Tratamento de uma solicitação de IRP_MN_SURPRISE_REMOVAL

Modelo do driver: WDM

Como testar

Em tempo de compilação

Execute Static Driver Verifier e especifique a regra de PnpSurpriseRemove .

Use as seguintes etapas para executar uma análise do seu código:
  1. Prepare seu código (use declarações de tipo de função).
  2. Execute o verificador de driver estático.
  3. Ver 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

Ver também

Tratamento de umIRP_MN_SURPRISE_REMOVALIRP_MN_REMOVE_DEVICE de solicitação de IRP_MN_SURPRISE_REMOVAL