Share via


IRP_MN_REMOVE_DEVICE

Alle PnP-Treiber müssen diese IRP verarbeiten.

Wert

0x02

Hauptcode

IRP_MJ_PNP

Sendebedingungen

Der PnP-Manager verwendet dieses IRP, um Treiber anweisen, die Softwaredarstellung eines Geräts (Geräteobjekte usw.) zu entfernen. Der PnP-Manager sendet diese IRP, wenn ein Gerät ordnungsgemäß entfernt wurde (z. B. von einem Benutzer im Programm "Hardware trennen" oder "Auswerfen" initiiert), durch Überraschung (ein Benutzer zieht das Gerät ohne vorherige Warnung aus seinem Steckplatz) oder wenn der Benutzer die Aktualisierung von Treibern anfordert.

Auf Systemen unter Windows 2000 und höher sendet der PnP-Manager diese IRP auch, wenn einer der Treiber im Gerätestapel eine IRP_MN_START_DEVICE Anforderung für das Gerät fehlschlägt.

Für eine geordnete Geräteentfernung sendet der PnP-Manager vor der Entfernungs-IRP eine IRP_MN_QUERY_REMOVE_DEVICE . In diesem Fall befindet sich das Gerät im Status "Entfernen ausstehend", wenn der IRP zum Entfernen eintrifft. Für eine überraschende Geräteentfernung unter Microsoft Windows 2000 oder höher sendet der PnP-Manager vor der Entfernungs-IRP eine IRP_MN_SURPRISE_REMOVAL . In diesem Fall befindet sich das Gerät im Zustand "Überraschend entfernt", wenn der Remove-IRP eintrifft. Treiber können auch eine Entfernungs-IRP erhalten, bevor ein Gerät gestartet wird. In diesem Fall befindet sich das Gerät im nicht gestarteten Zustand, wenn die IRP eintrifft.

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 festlegen. Treiber dürfen bei dieser IRP nicht fehlschlagen.

Vorgang

Diese IRP wird zuerst vom Treiber am oberen Rand des Gerätestapels und dann von jedem unteren Treiber im Stapel verarbeitet.

Als Reaktion auf diese IRP führen Treiber Aufgaben wie das Herunterfahren des Geräts, das Entfernen der Softwaredarstellung des Geräts (Geräteobjekte usw.) und das Freigeben von Ressourcen für das Gerät aus.

Weitere Informationen zur Behandlung dieses IRP finden Sie unter Behandeln einer IRP_MN_REMOVE_DEVICE-Anforderung. Allgemeine Informationen zur Unterstützung des Entfernens von Geräten finden Sie unter Entfernen eines Geräts.

Senden dieses IRP

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

Wenn ein Bustreiber erkennt, dass ein (oder mehrere) seiner untergeordneten Geräte (untergeordnete PDOs) physisch vom Computer entfernt wurde, ruft der Bustreiber IoInvalidateDeviceRelations auf, um die Änderung an den PnP-Manager zu melden. Der PnP-Manager sendet dann Entfernungs-IRPs für alle Geräte, die nicht mehr vorhanden sind.

Anforderungen

Header

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

Weitere Informationen

IoInvalidateDeviceRelations

IoRegisterPlugPlayNotification

IRP_MN_CANCEL_REMOVE_DEVICE

IRP_MN_QUERY_REMOVE_DEVICE

IRP_MN_SURPRISE_REMOVAL