Starten eines Treiberstapels

Nachdem das System ein Netzwerkgerät erkannt hat, startet das System einen NDIS-Treiberstapel für das Gerät. Das Gerät kann ein virtuelles Gerät oder ein physisches Gerät sein. In beiden Fällen wird ein Startvorgang für den Treiberstapel wie folgt ausgeführt:

  1. Das System lädt und initialisiert die Treiber, wenn sie noch nicht geladen sind.

    Die Treiber werden nicht in einer bestimmten Reihenfolge geladen.

  2. Das System ruft die DriverEntry-Funktion jedes Treibers auf.

    Nach der Rückgabe von DriverEntry :

    • Der Miniportadapter für das Gerät befindet sich im Zustand Angehalten.
    • Die Filtermodule befinden sich im Status Getrennt.
    • Die Protokollbindung befindet sich im Status Unbound.
  3. Das System fordert NDIS auf, den Miniportadapter zu starten.

    Um den Miniportadapter zu initialisieren, ruft NDIS die MiniportInitializeEx-Funktion des Miniporttreibers auf. Wenn MiniportInitializeEx erfolgreich ist, wechselt der Miniportadapter in den Zustand Angehalten.

  4. NDIS fügt die Filtermodule an, beginnend mit dem Modul, das dem Miniporttreiber am nächsten ist, und geht an den Anfang des Treiberstapels.

    Um den Treiber aufzufordern, ein Filtermodul an den Treiberstapel anzufügen, ruft NDIS die FilterAttach-Funktion eines Filtertreibers auf. Wenn jeder Anfügungsvorgang erfolgreich ist, wechselt das Filtermodul in den Zustand Angehalten.

  5. Nachdem sich alle zugrunde liegenden Treiber im Zustand Angehalten befinden, ruft NDIS die ProtocolBindAdapterEx-Funktion des Protokolltreibers auf.

    Dann wechselt die Protokolltreiberbindung in den Öffnen-Zustand. Der Protokolltreiber ruft die NdisOpenAdapterEx-Funktion auf, um die Bindung mit dem Miniportadapter zu öffnen.

  6. NDIS weist die erforderlichen Ressourcen für die Bindung zu und ruft die ProtocolOpenAdapterCompleteEx-Funktion des Protokolltreibers auf.

    Die Bindung wechselt in den Zustand Angehalten.

  7. Um den Bindungsvorgang abzuschließen, ruft der Protokolltreiber die NdisCompleteBindAdapterEx-Funktion auf.

  8. NDIS startet den Treiberstapel neu. Weitere Informationen zum Neustarten des Treiberstapels finden Sie unter Neustarten eines Treiberstapels.