Behandeln einer IRP_MN_REMOVE_DEVICE-Anforderung

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

Auf Windows 2000- und höher-Systemen sendet der PnP-Manager diese IRP, wenn Geräte-Manager das Gerät deaktiviert. Unter Windows 98/Me sendet der PnP-Manager stattdessen Stopp-IRPs. Weitere Informationen finden Sie unter Beenden eines Geräts .

Der PnP-Manager führt die folgenden Schritte aus, bevor dieser IRP an die Treiber für ein Gerät gesendet wird:

  • Sendet ggf. IRP_MN_REMOVE_DEVICE Anforderungen an die untergeordneten Geräte.

  • Benachrichtigt alle Benutzermoduskomponenten und Kernelmodustreiber, die für die Benachrichtigung registriert sind, dass das Gerät entfernt wird. Der PnP-Manager ruft alle Benutzermoduskomponenten auf, die für die Zielgerätebenachrichtigung auf einem Handle für das Gerät registriert sind, und ruft alle Kernelmodustreiber auf, die für EventCategoryTargetDeviceChange registriert sind.

  • (Unter Windows 2000 und höher) Wenn ein Dateisystem auf dem Gerät eingebunden ist, sendet der PnP-Manager eine Entfernungsanforderung an das Dateisystem und alle Dateisystemfilter. Als Reaktion darauf hebt ein Dateisystem die Bereitstellung des Volumes in der Regel auf.

Der oberste Treiber in einem Gerätestapel verarbeitet eine Remove-IRP und übergibt sie an den nächstniedrenen Treiber. Der übergeordnete Bustreiber für ein Gerät ist der letzte Treiber, der seine Remove-Device-Vorgänge ausführt. Ein Treiber verarbeitet das Entfernen von IRPs in seiner DispatchPnP-Routine .

Bevor ein Treiber erfolgreich für eine IRP_MN_REMOVE_DEVICE-Anforderung zurückgibt, muss er sicherstellen, dass alle Ressourcen für das Gerät freigegeben wurden. Dieser IRP kann der letzte Aufruf sein, bevor der Treiber entladen wird.

Das Entfernen eines Geräts kann dazu führen, dass eine Reihe anderer Geräte entfernt werden muss. Der PnP-Manager koordiniert das Entfernen der zusätzlichen Geräteobjekte von der obersten Ebene bis zur Stammgeräteebene.

Dieser Abschnitt beschreibt:

Entfernen eines Geräts in einem Funktionstreiber

Entfernen eines Geräts in einem Filtertreiber

Entfernen eines Geräts in einem Bustreiber