Dateisystemfilterladereihenfolge

Das Windows-Betriebssystem lädt Dateisystemfiltertreiber basierend auf:

  • Der Starttyp des Treibers, wobei jeder Starttyp phasen des Startens eines Systems darstellt.
  • Die Ladereihenfolgegruppen für Dateisystemfiltertreiber, die beim Systemstart geladen werden. Das Konzept der Ladereihenfolgegruppen wird von Dateisystemfiltertreibern für die Interoperabilität mit Legacy-Dateisystemfiltertreibern benötigt. Beachten Sie, dass ein Filtertreiber "Minifilter" jederzeit geladen werden kann.

Bevor Sie untersuchen, wann und wie Dateisystemfiltertreiber während der Systemstartsequenz geladen werden, müssen Sie treiberstarttypen und Ladereihenfolgegruppen verstehen.

Treiberstarttypen

Der Starttyp eines Kernelmodustreibers gibt an, ob der Treiber während oder nach dem Systemstart geladen werden soll. Es gibt fünf mögliche Starttypen:

Starttyp BESCHREIBUNG
SERVICE_BOOT_START (0x00000000) Gibt einen Treiber an, der vom Betriebssystemladeprogramm gestartet wird. Dateisystemfiltertreiber verwenden häufig diesen Starttyp oder SERVICE_DEMAND_START. Ältere Dateisystemfilter müssen diesen Starttyp verwenden. Weitere Informationen finden Sie unter Dateisystemfilterladereihenfolgegruppen .
SERVICE_SYSTEM_START (0x00000001) Gibt einen Treiber an, der während der Betriebssysteminitialisierung gestartet wurde. Dieser Starttyp wird von der Dateisystemerkennung verwendet. Mit Ausnahme der unten unter "SERVICE_DISABLED" aufgeführten Dateisysteme verwenden Dateisysteme (einschließlich Netzwerkdateisystemkomponenten) häufig diesen Starttyp oder SERVICE_DEMAND_START. Dieser Starttyp wird auch von Gerätetreibern für PnP-Geräte verwendet, die während der Systeminitialisierung aufgezählt werden, aber nicht zum Laden des Systems erforderlich sind.
SERVICE_AUTO_START (0x00000002) Gibt einen Treiber an, der während des Systemstarts vom Dienststeuerungs-Manager gestartet wird. Selten verwendet.
SERVICE_DEMAND_START (0x00000003) Gibt einen Treiber an, der bei Bedarf entweder vom PnP-Manager (für Gerätetreiber) oder vom Dienststeuerungs-Manager (für Dateisysteme und Dateisystemfiltertreiber) gestartet wird.
SERVICE_DISABLED (0x00000004) Gibt einen Treiber an, der nicht vom Betriebssystemladeprogramm, Service Control Manager oder PnP-Manager gestartet wird. Wird von Dateisystemen verwendet, die von einer Dateisystemerkennung (außer wenn es sich um das Startdateisystem handelt) oder (im Fall von EFS) von einem anderen Dateisystem geladen werden. Solche Dateisysteme umfassen CDFS, EFS, FastFat, NTFS und UDFS. Wird auch verwendet, um einen Treiber während des Debuggens vorübergehend zu deaktivieren.

Alle Treiber, die einen Starttyp von SERVICE_BOOT_START angeben, werden vor Treibern mit dem Starttyp SERVICE_SYSTEM_START oder SERVICE_AUTO_START geladen. Innerhalb jeder Starttypkategorie bestimmt die Ladereihenfolgegruppe, wann Dateisystemfiltertreiber (und Legacyfiltertreiber) geladen werden.

Angeben des Starttyps

Ein Treiberwriter kann den Starttyp für einen Treiber zur Installationszeit auf eine der folgenden Arten angeben:

  • Durch Angabe des gewünschten Starttyps für den StartType-Eintrag im Abschnitt service-install-section , auf den durch eine AddService-Direktive in der INF-Datei des Treibers verwiesen wird. Diese Methode wird im Abschnitt ServiceInstall unter Erstellen einer INF-Datei für einen Filtertreiber beschrieben.

  • Durch Übergeben des gewünschten Starttyps für den dwStartType-Parameter beim Aufrufen von CreateService oder ChangeServiceConfig aus einem Benutzermodus-Installationsprogramm. Diese Methode wird in den Referenzeinträgen für CreateService und ChangeServiceConfig in der Microsoft Windows SDK Dokumentation beschrieben.

Treiberladereihenfolgegruppen

Innerhalb der Starttypen SERVICE_BOOT_START und SERVICE_SYSTEM_START wird die relative Reihenfolge, in der Treiber geladen werden, von der Ladereihenfolgegruppe der einzelnen Treiber angegeben.

Treiber, deren Starttyp SERVICE_BOOT_START ist, werden als Starttreiber (oder Startstarttreiber) bezeichnet. Unter Microsoft Windows 2000 und früheren Systemen gehören die meisten Filter, bei denen es sich um Starttreiber handelt, zur Gruppe "Filter". Unter Microsoft Windows XP und höher gehören Filter, bei denen es sich um Starttreiber handelt, in der Regel zu einer der FSFilter-Ladereihenfolgegruppen. Diese Ladereihenfolgegruppen werden unter Ladereihenfolgegruppen für Dateisystemfiltertreiber ausführlich beschrieben.

Treiber, deren Starttyp SERVICE_SYSTEM_START werden ebenfalls in der Reihenfolge der Ladereihenfolgegruppen geladen, zu denen sie gehören. Es wird jedoch kein Systemstarttreiber geladen, bis alle Starttreiber geladen wurden.

Hinweis

Ladereihenfolgegruppen werden für Treiber ignoriert, deren Starttyp SERVICE_AUTO_START, SERVICE_DEMAND_START oder SERVICE_DISABLED ist.

Eine vollständige, sortierte Liste der Ladereihenfolgegruppen finden Sie unter dem Unterschlüssel ServiceGroupOrder des registrierungsschlüsselsHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control .

Die gleiche Ladegruppenreihenfolge wird für SERVICE_BOOT_START- und SERVICE_SYSTEM_START-Treiber verwendet. Alle SERVICE_BOOT_START Treiber werden jedoch geladen und gestartet, bevor SERVICE_SYSTEM_START Treiber geladen werden.

Angeben einer Ladereihenfolgegruppe

Ein Treiberwriter kann die Ladereihenfolgegruppe für einen Treiber zur Installationszeit auf eine der folgenden Arten angeben:

  • Durch Angabe der gewünschten Ladereihenfolgegruppe für den LoadOrderGroup-Eintrag im Abschnitt service-install-section , auf den durch eine AddService-Direktive in der INF-Datei des Treibers verwiesen wird. Diese Methode wird im Abschnitt ServiceInstall unter Erstellen einer INF-Datei für einen Filtertreiber beschrieben.

  • Durch Übergeben des gewünschten Starttyps für den lpLoadOrderGroup-Parameter beim Aufrufen von CreateService oder ChangeServiceConfig aus einem Benutzermodus-Installationsprogramm. Diese Methode wird in den Referenzeinträgen für CreateService und ChangeServiceConfig in der Microsoft Windows SDK Dokumentation beschrieben.

Allgemeine Informationen zu Treiberladereihenfolge und Ladereihenfolgegruppen finden Sie unter Angeben der Treiberladereihenfolge.

Regeln zum Laden eines Filtertreibers

Die folgenden Regeln zu Starttyp- und Ladereihenfolgegruppen bestimmen, wann ein Filtertreiber geladen wird:

  • Ein Filtertreiber, der einen bestimmten Starttyp und eine bestimmte Ladereihenfolgegruppe angibt, wird gleichzeitig mit anderen Dateisystemfiltertreibern und Legacyfiltertreibern in diesem Starttyp und dieser Ladereihenfolgegruppe geladen.
  • Innerhalb jeder Ladereihenfolgegruppe werden Dateisystemfiltertreiber und Legacytreiber in der Regel in zufälliger Reihenfolge geladen. Dies führt normalerweise dazu, dass Treiber basierend auf der Reihenfolge geladen werden, in der der Treiber installiert wurde.
  • Wenn ein Dateisystemfiltertreiber oder Legacyfiltertreiber keine Ladereihenfolgegruppe angibt, wird diese geladen, nachdem alle anderen Treiber desselben Starttyps, die eine Ladereihenfolgegruppe angeben, geladen.