Condividi tramite


Regola PnpSurpriseRemove (wdm)

La regola PnpSurpriseRemove specifica che il driver non chiama IoDeleteDevice o IoDetachDevice durante l'elaborazione di una richiesta IRP_MN_SURPRISE_REMOVAL.

Il gestore PnP invia la richiesta di IRP_MN_SURPRISE_REMOVAL per notificare ai driver che un dispositivo non è più disponibile per le operazioni di I/O e che probabilmente è stato rimosso in modo imprevisto dal computer.

  • Tutti i driver PnP devono gestire IRP_MN_SURPRISE_REMOVAL richiesta.
  • Il driver non deve chiamare IoDeleteDevice o IoDetachDevice sugli oggetti dispositivo finché l'IRP IRP_MN_SURPRISE_REMOVAL ha esito positivo e tutti gli handle aperti al dispositivo vengono chiusi.
  • Il gestore PnP invia quindi una richiesta di IRP_MN_REMOVE_DEVICE allo stack di dispositivi. In risposta alla rimozione di IRP, i driver scollegano gli oggetti dispositivo dallo stack ed eliminarli.

Per altre informazioni su come un driver deve rispondere alla richiesta di IRP_MN_SURPRISE_REMOVAL, vedere Gestione di un richiesta di IRP_MN_SURPRISE_REMOVAL

modello driver : WDM

Come eseguire il test

In fase di compilazione

Eseguire del driver statico e specificare la regola di PnpSurpriseRemove.

Per eseguire un'analisi del codice, seguire questa procedura:
  1. Preparare il codice (usare le dichiarazioni del tipo di ruolo).
  2. Esegui verifica driver statico.
  3. Visualizzare e analizzare i risultati.

Per altre informazioni, vedere Using Static Driver Verifier to Find Defects in Drivers.

Si applica a

IoDeleteDeviceIoDetachDevice

Vedere anche

la gestione di unIRP_MN_SURPRISE_REMOVALIRP_MN_REMOVE_DEVICE di richiesta di IRP_MN_SURPRISE_REMOVAL