Aktivieren und Deaktivieren einer Geräteschnittstelleninstanz

Nach dem erfolgreichen Starten des Geräts ruft der Treiber, der die Schnittstelle registriert hat, IoSetDeviceInterfaceState auf, um eine Schnittstelleninstanz zu aktivieren. Der Treiber übergibt den symbolischen Linknamen, der von IoRegisterDeviceInterface zurückgegeben wird, zusammen mit dem booleschen Wert TRUE , um die Schnittstelleninstanz zu aktivieren.

Wenn der Treiber sein Gerät erfolgreich starten kann, sollte er diese Routine aufrufen, während er die Anforderung des Plug-and-Play-Managers IRP_MN_START_DEVICE verarbeitet.

Nachdem die IRP_MN_START_DEVICE Anforderung abgeschlossen ist, gibt der PnP-Manager Benachrichtigungen über das Eintreffen von Geräteschnittstellen an alle Kernelmodus- oder Benutzermoduskomponenten aus, die sie angefordert haben. Weitere Informationen finden Sie unter Registrieren für Benachrichtigungen über Änderungen an der Geräteschnittstelle.

Um eine Geräteschnittstelleninstanz zu deaktivieren, ruft ein Treiber IoSetDeviceInterfaceState auf, wobei der von IoRegisterDeviceInterface zurückgegebene SymbolicLinkName und FALSE als Wert von Enable übergeben werden.

Ein Treiber sollte die Schnittstellen eines Geräts deaktivieren, wenn er eine IRP_MN_SURPRISE_REMOVAL oder IRP_MN_REMOVE_DEVICE Anforderung für das Gerät verarbeitet. Wenn ein Treiber die Schnittstellen eines Geräts beim Behandeln dieser Entfernungs-IRPs nicht deaktiviert, darf er anschließend nicht versuchen, dies zu tun, da der PnP-Manager die Schnittstellen deaktiviert, wenn der PnP-Manager das Gerät entfernt.

Ein Treiber sollte die Schnittstellen nicht deaktivieren, wenn das Gerät angehalten wird (IRP_MN_STOP_DEVICE); stattdessen sollte er alle Geräteschnittstellen aktiviert lassen und E/A-Anforderungen in die Warteschlange stellen, bis er eine weitere IRP_MN_START_DEVICE-Anforderung erhält. Ebenso sollte ein Treiber seine Schnittstellen nicht deaktivieren, wenn das Gerät in einen Energiesparmodus versetzt wird. Es sollte E/A-Anforderungen in die Warteschlange stellen, bis das Gerät aufwacht. Weitere Informationen finden Sie unter Geräte mit Wake-Up-Funktionen unterstützen.