Starten eines Geräts
Der PnP-Manager sendet eine IRP_MN_START_DEVICE Anforderung an Treiber, entweder ein neu aufgezähltes Gerät zu starten oder ein vorhandenes Gerät neu zu starten, das zum Erneuten Ausgleich der Ressourcen beendet wurde.
Funktions- und Filtertreiber müssen eine IoCompletion-Routine festlegen, die IRP_MN_START_DEVICE Anforderung im Gerätestapel übergeben und ihre Startvorgänge verschieben, bis alle niedrigeren Treiber mit dem IRP fertig sind. Der übergeordnete Bustreiber, der untere Treiber im Gerätestapel, muss der erste Treiber sein, der seine Startvorgänge auf einem Gerät ausführt, bevor andere Treiber auf das Gerät zugreifen.
Um eine ordnungsgemäße Sequenzierung der Startvorgänge sicherzustellen, verschiebt der PnP-Manager unter Windows 2000 und höheren Versionen von Windows die Offenlegung von Geräteschnittstellen und Blöcken, die Anforderungen für das Gerät erstellen, bis der Start-IRP erfolgreich ist.
Wenn bei einem Treiber für ein Gerät die IRP_MN_START_DEVICE-Anforderung fehlschlägt, sendet der PnP-Manager eine IRP_MN_REMOVE_DEVICE Anforderung an den Gerätestapel (unter Windows 2000 und höheren Versionen von Windows). Als Reaktion auf diese IRP machen die Treiber für das Gerät ihre Startvorgänge rückgängig (wenn sie die Start-IRP erfolgreich ausgeführt haben), heben ihre AddDevice-Vorgänge zurück und trennen sich vom Gerätestapel. Der PnP-Manager kennzeichnet ein solches Gerät als "Fehlerstart".
Dieser Abschnitt enthält die folgenden Themen:
Starten eines Geräts in einem Funktionstreiber
Starten eines Geräts in einem Filtertreiber