NdisMCmRegisterAddressFamilyEx-Funktion (ndis.h)

Die Funktion NdisMCmRegisterAddressFamilyEx registriert eine Adressfamilie (AF) für die Kommunikation zwischen einem Miniport-Anruf-Manager (MCM) und CoNDIS-Clients.

Syntax

NDIS_STATUS NdisMCmRegisterAddressFamilyEx(
  [in] NDIS_HANDLE        MiniportAdapterHandle,
  [in] PCO_ADDRESS_FAMILY AddressFamily
);

Parameter

[in] MiniportAdapterHandle

Ein von NDIS bereitgestellter Handle, der einen Miniportadapter identifiziert. Dieses Handle ist ein Eingabeparameter für die MCM MiniportInitializeEx-Funktion .

[in] AddressFamily

Ein Zeiger auf eine CO_ADDRESS_FAMILY-Struktur , die den vom MCM-Treiber unterstützten AF identifiziert.

Der Zeiger wird zu einem Eingabeparameter auf den ProtocolCoAfRegisterNotify-Funktionen aller CoNDIS-Clients, die an diesen MCM-Treiber gebunden sind.

Rückgabewert

NdisMCmRegisterAddressFamilyEx kann folgendes zurückgeben:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Der Miniporttreiber hat sich bei NDIS als Anruf-Manager für den AF registriert, den der AddressFamily-Parameter angegeben hat, sodass NDIS die ProtocolCoAfRegisterNotify-Funktionen aller Clients, die an den MCM-Treiber gebunden sind.
NDIS_STATUS_RESOURCES
Fehler beim angeforderten Vorgang, da NDIS nicht genügend Arbeitsspeicher zuweisen oder die Zustandsinformationen initialisieren konnte, die zum Nachverfolgen des MCM-Treibers als Anruf-Manager des angegebenen AF verwendet werden.
NDIS_STATUS_FAILURE
NDIS hat den Aufruf von NdisMCmRegisterAddressFamilyEx möglicherweise aus einem der folgenden Gründe fehlgeschlagen:
  • Der Aufrufer wurde nicht als verbindungsorientierter Miniporttreiber registriert.
  • Der Aufrufer hat versucht, einen doppelten AF für einen bestimmten Miniportadapter zu registrieren.

Hinweise

NDIS MCMs, die sich als NDIS-Miniporttreiber registrieren, indem sie die Die NdisMRegisterMiniportDriver-Funktion sollte die Funktion NdisMCmRegisterAddressFamilyEx aufrufen, um einen AF zu registrieren. Eigenständige Anrufmanager sollten stattdessen die NdisCmRegisterAddressFamilyEx-Funktion .

Um einen AF für einen Miniportadapter zu registrieren, sollte der MCM NdisMCmRegisterAddressFamilyEx von der MiniportInitializeEx-Funktion aufrufen.

Der Treiber einer beliebigen Netzwerkschnittstelle Karte (NIC), die über eine on-board-verbindungsorientierte Signalunterstützung verfügt, kann sich als MCM-Treiber registrieren, um eine bessere Leistung bei der Verwaltung von Anrufen zu erzielen. Wenn sich ein Fahrer als MCM-Treiber registriert, wird jeder eigenständige Anrufmanager mit der eigenen Anrufverwaltungsunterstützung des NIC-Fahrers verdrängt.

Ein MCM-Treiber ruft NdisMCmRegisterAddressFamilyEx auf, nachdem er festgestellt hat, dass eine NIC vollständig betriebsbereit ist und der Treiber Netzwerk-E/A-Vorgänge abschließen kann. Das heißt, ein solcher MCM registriert sich selbst als Anrufmanager und wirbt für seine spezifischen Signalisierungsdienste für CoNDIS-Clients.

Nachdem MiniportInitializeEx die Steuerung mit erfolgreicher Registrierung als Anruf-Manager zurückgegeben hat, ruft NDIS die ProtocolBindAdapterEx-Funktionen potenzieller Clients und dann die ProtocolCoAfRegisterNotify-Funktionen aller Clients, die sich an den zugehörigen MCM-Miniportadapter binden. Diese Clients veranlassen dann, dass NDIS die ProtocolCmOpenAf-Funktion des MCM aufruft.

Ein MCM kann mehrere AF für eine einzelne verwaltete NIC unterstützen. Der MCM-Treiber muss NdisMCmRegisterAddressFamilyEx einmal für jeden AF aufrufen, den er für einen Miniportadapter registriert. Nur ein MCM-Treiber kann einen bestimmten Typ von AF für Clients unterstützen, die an einen bestimmten Miniportadapter gebunden sind.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Desktop
Kopfzeile ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL PASSIVE_LEVEL
DDI-Complianceregeln Irql_MCM_Function(ndis)

Weitere Informationen

CO_ADDRESS_FAMILY

MiniportInitializeEx

NdisCmRegisterAddressFamilyEx

NdisMRegisterMiniportDriver

ProtocolBindAdapterEx

ProtocolCmOpenAf

ProtocolCoAfRegisterNotify

ProtocolCoCreateVc

ProtocolCoDeleteVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete