Freigeben über


PnpSurpriseRemove-Regel (wdm)

Die PnpSurpriseRemove-Regel gibt an, dass der Treiber während der Verarbeitung einer IRP_MN_SURPRISE_REMOVAL anforderung keine IoDeleteDevice oder IoDetachDevice aufruft.

Der PnP-Manager sendet die IRP_MN_SURPRISE_REMOVAL-Anforderung , um Treiber darüber zu informieren, dass ein Gerät nicht mehr für E/A-Vorgänge verfügbar ist und dass es wahrscheinlich unerwartet vom Computer entfernt wurde.

  • Alle PnP-Treiber müssen IRP_MN_SURPRISE_REMOVAL Anforderung verarbeiten.
  • Der Treiber darf IoDeleteDevice oder IoDetachDevice auf Geräteobjekten erst aufrufen, wenn die IRP_MN_SURPRISE_REMOVAL IRP erfolgreich ist und alle geöffneten Handles für das Gerät geschlossen werden.
  • Der PnP-Manager sendet dann eine IRP_MN_REMOVE_DEVICE-Anforderung an den Gerätestapel. Als Reaktion auf das Entfernen von IRP trennen Treiber ihre Geräteobjekte vom Stapel und löschen sie.

Weitere Informationen dazu, wie ein Treiber auf IRP_MN_SURPRISE_REMOVAL Anforderung reagieren soll, finden Sie unter Behandeln einer IRP_MN_SURPRISE_REMOVAL-Anforderung.

Treibermodell: WDM

So führen Sie einen Test durch

Beim Kompilieren:

Führen Sie static Driver Verifier aus, und geben Sie die PnpSurpriseRemove-Regel an .

Gehen Sie folgendermaßen vor, um Ihren Code zu analysieren:
  1. Bereiten Sie den Code vor (verwenden Sie Rollentypdeklarationen).
  2. Führen Sie Static Driver Verifier aus.
  3. Überprüfen und analysieren Sie die Ergebnisse.

Weitere Informationen finden Sie unter Verwenden der statischen Treiberüberprüfung, um Fehler in Treibern zu finden.

Gilt für:

IoDeleteDeviceIoDetachDevice

Weitere Informationen

Behandeln einer IRP_MN_SURPRISE_REMOVAL AnforderungAnalysieren eines Treibers mithilfe von Überprüfungs- und CodeanalysetoolsIRP_MN_SURPRISE_REMOVALIRP_MN_REMOVE_DEVICE