Freigeben über


Initialisieren eines Miniportadapters

Wenn ein Netzwerkgerät verfügbar ist, lädt das System den erforderlichen NDIS-Miniporttreiber, sofern er noch nicht geladen ist. Anschließend sendet der Plug-and-Play-Manager (PnP) NDIS ein Plug-and-Play-IRP, um das Gerät zu starten. NDIS ruft die MiniportInitializeEx-Funktion des Miniporttreibers auf, um einen Adapter für Netzwerk-E/A-Vorgänge zu initialisieren. NDIS kann MiniportInitializeEx jederzeit aufrufen, nachdem der Treiber initialisiert wurde. Weitere Informationen zur Initialisierung des Miniporttreibers finden Sie unter Initialisieren eines Miniporttreibers.

Bis MiniportInitializeEx zurückgibt, sendet NDIS keine Anforderungen für den zu initialisierenden Adapter. Der Adapter befindet sich im Initializing-Zustand.

Ein Miniporttreiber führt in der Regel die folgenden Aufgaben in MiniportInitializeEx aus:

  1. Ruft Konfigurationsinformationen für den Adapter ab.

  2. Ruft Informationen zu den Hardwareressourcen für den Adapter ab.

  3. Ruft NdisMSetMiniportAttributes auf und stellt die folgenden Attribute bereit, die dem Adapter zugeordnet sind:

    • Ein Zeiger auf einen vom Treiber zugewiesenen Kontextbereich.
    • Entsprechende Attributflags.
    • Das Timeoutintervall für den Aufruf der MiniportCheckForHangEx-Funktion .
    • Der Schnittstellentyp.
  4. Initialisiert adapterspezifische Ressourcen.

Der Miniporttreiber gibt die Adapterattribute in der NDIS_MINIPORT_ADAPTER_ATTRIBUTES-Struktur an, die MiniportInitializeEx an NdisMSetMiniportAttributes übergibt.

In der Regel ordnet MiniportInitializeEx adapterspezifische Ressourcen in der folgenden Reihenfolge zu:

  1. Nicht auslagerten Poolspeicher.

  2. NET_BUFFER - und NET_BUFFER_LIST pools (siehe Sende- und Empfangsvorgänge für Miniporttreiber).

  3. Drehsperren.

  4. Timer.

  5. E/A-Ports.

  6. DMA (siehe Scatter/Gather DMA).

  7. Shared Memory.

  8. Interrupts (siehe Verwalten von Interrupts).

Nachdem MiniportInitializeEx erfolgreich zurückgegeben wurde, befindet sich der Adapter im Zustand Angehalten. NDIS kann die MiniportRestart-Funktion aufrufen, um den Adapter in den Zustand Wird ausgeführt zu überstellen. Weitere Informationen finden Sie unter Starten eines Miniportadapters.

Wenn MiniportInitializeEx NDIS_STATUS_SUCCESS zurückgibt, sollte der Treiber alle Ressourcen für den Adapter in der MiniportHaltEx-Funktion freigeben. Weitere Informationen finden Sie unter Anhalten eines Miniportadapters.

Der Treiber muss NdisMSetMiniportAttributes aufrufen und die GeneralAttributes in der NDIS_MINIPORT_ADAPTER_ATTRIBUTES-Struktur festlegen, wenn er NDIS_STATUS_SUCCESS zurückgibt.

Wenn MiniportInitializeEx fehlgeschlagen ist, muss MiniportInitializeEx alle zugeordneten Ressourcen freigeben, bevor es zurückgibt, und der Adapter kehrt in den Zustand "Angehalten" zurück.

Anhalten eines Miniportadapters

Status und Vorgänge des Miniportadapters

Sende- und Empfangsvorgänge für Miniporttreiber

Scatter/Gather DMA

Starten eines Miniportadapters