Freigeben über


IRP_MN_CANCEL_REMOVE_DEVICE

Alle PnP-Treiber müssen diese IRP verarbeiten.

Wert

0x03

Hauptcode

IRP_MJ_PNP

Sendebedingungen

Der PnP-Manager sendet diese IRP, um die Treiber für ein Gerät darüber zu informieren, dass das Gerät nicht entfernt wird.

Der PnP-Manager sendet diese IRP an IRQL PASSIVE_LEVEL im Kontext eines Systemthreads.

Eingabeparameter

Keine

Ausgabeparameter

Keine

E/A-Statusblock

Ein Treiber muss Irp-IoStatus.Status> auf STATUS_SUCCESS für dieses IRP festlegen. Wenn bei einem Treiber dieser IRP ein Fehler auftritt, verbleibt das Gerät in einem inkonsistenten Zustand.

Vorgang

Diese IRP muss zuerst vom übergeordneten Bustreiber für ein Gerät und dann von jedem höheren Treiber im Gerätestapel verarbeitet werden.

Als Reaktion auf dieses IRP versetzen Treiber das Gerät in den Zustand zurück, in dem es sich vor dem Empfang der IRP_MN_QUERY_REMOVE_DEVICE-Anforderung befand.

Wenn das Gerät bereits gestartet wurde, wenn der Treiber diese IRP empfängt, setzt der Treiber einfach status auf Erfolg und übergibt das IRP an den nächsten Treiber (oder schließt die IRP ab, wenn der Treiber ein Bustreiber ist). Für eine solche Abbruch-/Entfernungs-IRP muss ein Funktions- oder Filtertreiber keine Vervollständigungsroutine festlegen. Das Gerät befindet sich möglicherweise nicht im Status "Entfernen ausstehend", da der Treiber beispielsweise beim vorherigen IRP_MN_QUERY_REMOVE_DEVICE fehlgeschlagen ist.

Der PnP-Manager ruft alle EventCategoryTargetDeviceChange-Benachrichtigungsrückrufe mit GUID_TARGET_DEVICE_REMOVE_CANCELLED auf, nachdem die IRP_MN_CANCEL_REMOVE_DEVICE Anforderung abgeschlossen ist. Solche Rückrufe wurden auf dem Gerät registriert, indem IoRegisterPlugPlayNotification aufgerufen wurde. Der PnP-Manager ruft auch alle Benutzermoduskomponenten auf, die sich für Benachrichtigungen auf dem Gerät registriert haben, indem registerDeviceNotification aufgerufen wird.

Wenn ein Dateisystem auf dem Gerät eingebunden ist, muss es alle Vorgänge rückgängig machen, die es als Reaktion auf die Benachrichtigung zum Entfernen von Abfragen ausgeführt hat.

Ausführliche Informationen zum Behandeln von Entfernungs-IRPs und allgemeine Regeln für die Behandlung aller Plug & Play neben irPs finden Sie unter Plug & Play.

Senden dieses IRP

Ist für das System reserviert. Treiber dürfen diese IRP nicht senden.

Anforderungen

Header

Wdm.h (einschließen Wdm.h, Ntddk.h oder Ntifs.h)

Weitere Informationen

IoRegisterPlugPlayNotification

IRP_MN_QUERY_REMOVE_DEVICE