Compartir a través de


Regla PnpSurpriseRemove (wdm)

La regla PnpSurpriseRemove especifica que el controlador no llama a IoDeleteDevice o IoDetachDevice mientras procesa una solicitud de IRP_MN_SURPRISE_REMOVAL.

El administrador de PnP envía la solicitud de IRP_MN_SURPRISE_REMOVAL para notificar a los controladores que un dispositivo ya no está disponible para las operaciones de E/S y que probablemente se haya quitado inesperadamente del equipo.

  • Todos los controladores PnP deben controlar IRP_MN_SURPRISE_REMOVAL solicitud.
  • El controlador no debe llamar a ioDeleteDevice ni ioDetachDevice en objetos de dispositivo hasta que el IRP de IRP_MN_SURPRISE_REMOVAL se realice correctamente y se cierren todos los identificadores abiertos en el dispositivo.
  • A continuación, el administrador de PnP envía una solicitud IRP_MN_REMOVE_DEVICE a la pila de dispositivos. En respuesta a la eliminación de IRP, los controladores desasocian sus objetos de dispositivo de la pila y los eliminan.

Para obtener más información sobre cómo un controlador debe responder a IRP_MN_SURPRISE_REMOVAL solicitud, consulte Control de una solicitud de IRP_MN_SURPRISE_REMOVAL

Modelo de controlador de : WDM

Cómo probar

En tiempo de compilación

Ejecute del comprobador de controladores estáticos y especifique la regla de de PnpSurpriseRemove.

Siga estos pasos para ejecutar un análisis del código:
  1. Preparar el código (usar declaraciones de tipo de rol).
  2. ejecutar comprobador de controladores estáticos.
  3. Ver y analizar los resultados.

Para obtener más información, vea Using Static Driver Verifier to Find Defects in Drivers.

Se aplica a

ioDeleteDeviceioDetachDevice

Consulte también

control de unIRP_MN_SURPRISE_REMOVALIRP_MN_REMOVE_DEVICE de solicitud de IRP_MN_SURPRISE_REMOVAL