Freigeben über


NdisClCloseAddressFamily-Funktion (ndis.h)

NdisClCloseAddressFamily gibt die Zuordnung zwischen einem Clientprotokoll und dem registrierten AF eines Anrufmanagers oder MCM-Treibers für eine bestimmte NIC frei, an die der Client gebunden ist.

Syntax

NDIS_STATUS NdisClCloseAddressFamily(
  [in] NDIS_HANDLE NdisAfHandle
);

Parameter

[in] NdisAfHandle

Gibt den von NDIS bereitgestellten Handle an, der von zurückgegeben wird. NdisClOpenAddressFamilyEx.

Rückgabewert

When NdisClCloseAddressFamily gibt alles andere als NDIS_STATUS_PENDING zurück. Der Client sollte einen internen Aufruf an seine ProtocolClCloseAfComplete-Funktion . Andernfalls ruft NDIS die des Clients auf. ProtocolClCloseAfComplete-Funktion , wenn dieser Vorgang abgeschlossen ist.

Wenn NdisClCloseAddressFamily gibt NDIS_STATUS_PENDING zurück. Die aufgerufene ProtocolClCloseAfComplete-Funktion sollte den aktuellen Thread nicht blockieren, da dies zu einem Deadlock führen kann. Dies ist besonders wichtig, wenn ein Client NdisClCloseAddressFamily im Kontext der Behandlung eines aufruft. NdisCmNotifyCloseAddressFamily-Anforderung . In diesem Fall schließt der Anruf-Manager die Adressfamilie möglicherweise erst, nachdem der Client von der Behandlung der NdisCmNotifyCloseAddressFamily-Anforderung zurückgekehrt ist. Wenn der Client den aktuellen Thread blockiert, schließt der Client die Verarbeitung der NdisCmNotifyCloseAddressFamily-Anforderung nie ab, was zu einem Deadlock führt.

Hinweise

Ein Client ruft in der Regel NdisClCloseAddressFamily von seinem
ProtocolUnbindAdapterEx-Funktion , nachdem sie alle geöffneten VCs des Clients in der Bindung mit Aufrufen von NdisClCloseCall und/oder NdisClDeregisterSap geschlossen hat. Ein Client kann auch NdisClCloseAddressFamily im Kontext der Verarbeitung von NdisCmNotifyCloseAddressFamily-Anforderung .

NDIS ruft die eines Clients auf. ProtocolUnbindAdapterEx-Funktion immer dann, wenn eine zugrunde liegende NIC, an die dieser Client gebunden ist, vom Computer entfernt oder neu konfiguriert wird. Eine PnP-Neukonfiguration des zugrunde liegenden Miniporttreibers bewirkt, dass der Anruf-Manager oder der MCM-Treiber die unterstützte Adressfamilie über diese NIC neu registriert. Dies führt wiederum zu einem nachfolgenden Aufruf des Clients. ProtocolCoAfRegisterNotify-Funktion . In beiden Szenarien ist der Client ProtocolUnbindAdapterEx-Funktion muss NdisClCloseAddressFamily mit allen ausstehenden NdisAfHandle aufrufen, die sie derzeit verwendet, die vom zugrunde liegenden Miniporttreiber abhängig ist.

Als allgemeine Richtlinie sollte ein Client alle Ressourcen freigeben, die er für die verbindungsorientierte Kommunikation über den Miniporttreiber zugewiesen hat. Die ProtocolUnbindAdapterEx-Funktion ruft NdisCloseAdapterEx auf.

Das an NdisClCloseAddressFamily übergebene NdisAfHandle wird für den Client ungültig, sobald dieser Aufruf erfolgt.

Vor einem Aufruf von NdisClCloseAddressFamily kann der Client das NdisAfHandle verwenden, während der AF geöffnet ist oder während eines ProtocolClNotifyCloseAf-Vorgang steht aus. Wird der ProtocolClNotifyCloseAf-Funktion gibt NDIS_STATUS_PENDING zurück. Verwenden Sie das Handle im NdisClNotifyCloseAddressFamilyComplete-Aufruf nach Abschluss des Abschlussvorgangs.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisClCloseAddressFamily (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisClCloseAddressFamily (NDIS 5.1)) in Windows XP.
Zielplattform Desktop
Kopfzeile ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_Protocol_Driver_Function(ndis)

Weitere Informationen

NdisClCloseCall

NdisClDeregisterSap

NdisClOpenAddressFamilyEx

ProtocolClCloseAfComplete

ProtocolCmCloseAf

ProtocolCoAfRegisterNotify

ProtocolUnbindAdapterEx