Bindung an einen Adapter
NDIS ruft die ProtocolBindAdapterEx-Funktion eines Protokolltreibers auf, um eine Bindung zu öffnen, sobald ein zugrunde liegender Adapter verfügbar ist, an den der Treiber binden kann. Nachdem NDIS ProtocolBindAdapterEx aufgerufen hat, wechselt die Bindung in den Öffnen-Zustand. Im Öffnen-Zustand ordnet der Protokolltreiber Ressourcen für die Bindung zu und öffnet den Adapter.
NDIS übergibt an ProtocolBindAdapterEx den NDIS-Kontext für den Bindungsvorgang sowie einen Zeiger auf eine NDIS_BIND_PARAMETERS-Struktur . Diese Struktur enthält Informationen zum Adapter, z. B.:
Der Name des Adapters.
Der Registrierungsspeicherort für Parameter, die für diese Bindung spezifisch sind, unter dem Protokolldiensteintrag in der Registrierung.
Das objekt des physischen Geräts für den Adapter.
Um einen Adapter zu öffnen, rufen Protokolltreiber die NdisOpenAdapterEx-Funktion auf. Der Protokolltreiber übergibt Folgendes an NdisOpenAdapterEx:
Das Handle, das NDIS am NdisProtocolHandle-Parameter der NdisRegisterProtocolDriver-Funktion an den Treiber zurückgegeben hat.
Der Kontext des Protokolltreibers für diese Bindung.
Ein Zeiger auf eine Struktur vom Typ NDIS_OPEN_PARAMETERS.
NDIS_OPEN_PARAMETERS enthält Informationen wie den Namen des Adapters, den NdisOpenAdapterEx öffnen soll, ein Array mittlerer Typen, die der Protokolltreiber unterstützt, und optional ein Array von Frametypen, die der Treiber für diese Bindung empfangen kann.
Wenn ein Protokolltreiber NDIS_STATUS_PENDING von ProtocolBindAdapterEx zurückgibt, muss er NdisCompleteBindAdapterEx mit der endgültigen status aufrufen, um die Bindungsanforderung abzuschließen.
Wenn NDIS NDIS_STATUS_PENDING von NdisOpenAdapterEx zurückgibt, ruft NDIS später die ProtocolOpenAdapterCompleteEx-Funktion des Protokolltreibers mit dem endgültigen status auf, nachdem die offene Anforderung abgeschlossen wurde.
Nachdem der Treiber die Bindung an den Adapter erfolgreich geöffnet hat, befindet sich die Bindung im Zustand Angehalten.
Ein Protokolltreiber ruft die NdisCloseAdapterEx-Funktion auf, um den Adapter zu schließen. Der Treiber kann NdisCloseAdapterEx über die ProtocolBindAdapterEx-Funktion oder die ProtocolUnbindAdapterEx-Funktion aufrufen.
Wenn ProtocolBindAdapterEx nach dem Öffnen des Adapters und vor abschluss der Bindungsanforderung einen Fehler erkennt und die Bindung an den Adapter schließen muss, kann es NdisCloseAdapterEx aufrufen. Weitere Informationen zum Schließen eines Adapters finden Sie unter Aufheben der Bindung an einen Adapter.