NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS-Struktur (ndis.h)

Die NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS-Struktur gibt Die CoNDIS-Aufruf-Manager-ProtokollXxx-Funktionen für den Treiber an, der diese Struktur an die NdisSetOptionalHandlers-Funktion .

Syntax

typedef struct _NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS {
  NDIS_OBJECT_HEADER                  Header;
  ULONG                               Reserved;
  CO_CREATE_VC_HANDLER                CmCreateVcHandler;
  CO_DELETE_VC_HANDLER                CmDeleteVcHandler;
  CM_OPEN_AF_HANDLER                  CmOpenAfHandler;
  CM_CLOSE_AF_HANDLER                 CmCloseAfHandler;
  CM_REG_SAP_HANDLER                  CmRegisterSapHandler;
  CM_DEREG_SAP_HANDLER                CmDeregisterSapHandler;
  CM_MAKE_CALL_HANDLER                CmMakeCallHandler;
  CM_CLOSE_CALL_HANDLER               CmCloseCallHandler;
  CM_INCOMING_CALL_COMPLETE_HANDLER   CmIncomingCallCompleteHandler;
  CM_ADD_PARTY_HANDLER                CmAddPartyHandler;
  CM_DROP_PARTY_HANDLER               CmDropPartyHandler;
  CM_ACTIVATE_VC_COMPLETE_HANDLER     CmActivateVcCompleteHandler;
  CM_DEACTIVATE_VC_COMPLETE_HANDLER   CmDeactivateVcCompleteHandler;
  CM_MODIFY_CALL_QOS_HANDLER          CmModifyCallQoSHandler;
  CO_OID_REQUEST_HANDLER              CmOidRequestHandler;
  CO_OID_REQUEST_COMPLETE_HANDLER     CmOidRequestCompleteHandler;
  CM_NOTIFY_CLOSE_AF_COMPLETE_HANDLER CmNotifyCloseAfCompleteHandler;
} NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS, *PNDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS;

Member

Header

Die NDIS_OBJECT_HEADER-Struktur für die CoNDIS-Eigenschaftenstruktur des Aufrufmanagers (NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS). Legen Sie den Typmember der Struktur, die Header angibt, auf NDIS_OBJECT_TYPE_CO_CALL_MANAGER_OPTIONAL_HANDLERS, den Revisionsmember auf NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS_REVISION_1 und den Size-Member auf NDIS_SIZEOF_CO_CALL_MANAGER_OPTIONAL_HANDLERS_REVISION_1 fest.

Reserved

Reserviert für NDIS.

CmCreateVcHandler

Der Einstiegspunkt der ProtocolCoCreateVc-Funktion des Aufrufers.

CmDeleteVcHandler

Der Einstiegspunkt der ProtocolCoDeleteVc-Funktion des Aufrufers.

CmOpenAfHandler

Der Einstiegspunkt der ProtocolCmOpenAf-Funktion des Aufrufers.

CmCloseAfHandler

Der Einstiegspunkt der ProtocolCmCloseAf-Funktion des Aufrufers.

CmRegisterSapHandler

Der Einstiegspunkt des Aufrufers ProtocolCmRegisterSap-Funktion .

CmDeregisterSapHandler

Der Einstiegspunkt des Aufrufers ProtocolCmDeregisterSap-Funktion .

CmMakeCallHandler

Der Einstiegspunkt der ProtocolCmMakeCall-Funktion des Aufrufers.

CmCloseCallHandler

Der Einstiegspunkt des Aufrufers ProtocolCmCloseCall-Funktion .

CmIncomingCallCompleteHandler

Der Einstiegspunkt des Aufrufers ProtocolCmIncomingCallComplete-Funktion .

CmAddPartyHandler

Der Einstiegspunkt der ProtocolCmAddParty-Funktion des Aufrufers.

CmDropPartyHandler

Der Einstiegspunkt des Aufrufers ProtocolCmDropParty-Funktion .

CmActivateVcCompleteHandler

Der Einstiegspunkt des Aufrufers ProtocolCmActivateVcComplete-Funktion .

CmDeactivateVcCompleteHandler

Der Einstiegspunkt des Aufrufers ProtocolCmDeactivateVcComplete-Funktion .

CmModifyCallQoSHandler

Der Einstiegspunkt des Aufrufers ProtocolCmModifyCallQoS-Funktion .

CmOidRequestHandler

Der Einstiegspunkt des Aufrufers ProtocolCoOidRequest-Funktion .

CmOidRequestCompleteHandler

Der Einstiegspunkt des Aufrufers ProtocolCoOidRequestComplete-Funktion .

CmNotifyCloseAfCompleteHandler

Der Einstiegspunkt des Aufrufers ProtocolCmNotifyCloseAfComplete-Funktion .

Hinweise

Um Einstiegspunkte als CoNDIS-Anruf-Manager anzugeben, initialisiert ein Protokolltreiber oder Miniport-Anruf-Manager (MCM) eine NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS-Struktur und übergibt sie an die NdisSetOptionalHandlers-Funktion .

Eigenständige Aufruf-Manager-Einschränkungen

Ein eigenständiger Aufruf-Manager ruft NdisSetOptionalHandlers über die ProtocolSetOptions-Funktion auf. Der Aufruf-Manager muss jeden Einstiegspunkt in der NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS-Struktur auf eine vom Treiber bereitgestellte ProtocolXxx-Funktion festlegen, wenn er NdisSetOptionalHandlers aufruft, auch wenn der Anruf-Manager keine eingehenden Anrufe, ausgehenden Anrufe oder Point-to-Multipoint-Verbindungen unterstützt. Für jede Teilmenge verbindungsorientierter Funktionen, die ein solcher Aufruf-Manager nicht unterstützt, sollten seine Platzhalterfunktionen ProtocolXxx einfach NDIS_STATUS_NOT_SUPPORTED zurückgeben.

Nachdem ein eigenständiger Anrufmanager die NdisCmRegisterAddressFamilyEx-Funktion erfolgreich, NDIS ignoriert jeden Einstiegspunkt, den der Aufruf-Manager zuvor für die ProtocolOidRequestComplete-Funktion des NDIS_PROTOCOL_DRIVER_CHARACTERISTICS Struktur, die an den übergeben wurde NdisRegisterProtocolDriver-Funktion .

MCM-Einschränkungen

Ein MCM ruft die NdisSetOptionalHandlers-Funktion aus der MiniportSetOptions-Funktion auf. Der MCM muss jedes CmXxx-Element in der NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS-Struktur auf eine von MCM bereitgestellte ProtocolXxx-Funktion festlegen, auch wenn der MCM keine eingehenden Aufrufe, ausgehenden Anrufe oder Point-to-Multipoint-Verbindungen unterstützt. Für jede Teilmenge verbindungsorientierter Funktionen, die ein solcher MCM-Treiber nicht unterstützt, sollten seine ProtocolXxx-Funktionen einfach NDIS_STATUS_NOT_SUPPORTED zurückgeben. Beispielsweise ruft NDIS nie den registrierten MCM-Treiber auf. ProtocolCmActivateVcComplete oder ProtocolCmDeactivateVcComplete-Funktion , sodass diese Funktionen NDIS_STATUS_NOT_SUPPORTED zurückgeben können, aber über Einstiegspunkte in der NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS-Struktur verfügen müssen.

Ein MCM-Treiber muss Einstiegspunkte für die Funktionen ProtocolCoCreateVc und ProtocolCoDeleteVc angeben. Wenn der MCM zuvor eine MiniportCoCreateVc - oder MiniportCoDeleteVc-Funktion registriert hat. NDIS ignoriert die Einstiegspunkte für diese Funktionen, wenn NDIS den MCM-Treiber aufruft, um eine virtuelle Verbindung (Virtual Connection, VC) zu erstellen oder zu löschen. Daher übergibt NDIS einen NdisAfHandle-Wert für den anfänglichen Parameter an die von MCM bereitgestellte ProtocolCoCreateVc - oder ProtocolCoDeleteVc-Funktion anstelle des MiniportAdapterContext-Werts , den es an die MiniportCoCreateVc - oder MiniportCoDeleteVc-Funktion eines Nicht-MCM-Miniporttreibers übergeben würde.

Ein MCM-Treiber kann den CmOidRequestHandler-Member von NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS nicht auf seine MiniportCoOidRequest-Funktion festlegen. Der Treiber muss einen separaten Einstiegspunkt für eine ProtocolCoOidRequest-Funktion bereitstellen. Ein MCM-Treiber muss über eine ProtocolCoOidRequest-Funktion verfügen, um Aufruf-Manager-Anforderungen von CoNDIS-Clients verarbeiten zu können, und muss über eine ProtocolCoOidRequestComplete-Funktion .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Kopfzeile ndis.h (include Ndis.h)

Weitere Informationen

MiniportCoCreateVc

MiniportCoDeleteVc

MiniportCoOidRequest

MiniportSetOptions

NDIS_OBJECT_HEADER

NDIS_PROTOCOL_DRIVER_CHARACTERISTICS NdisCmRegisterAddressFamilyEx

NdisRegisterProtocolDriver

NdisSetOptionalHandlers

ProtocolCmActivateVcComplete

ProtocolCmAddParty

ProtocolCmCloseAf

ProtocolCmCloseCall

ProtocolCmDeactivateVcComplete

ProtocolCmDeregisterSap

ProtocolCmDropParty

ProtocolCmIncomingCallComplete

ProtocolCmMakeCall

ProtocolCmModifyCallQoS

ProtocolCmOpenAf

ProtocolCmRegisterSap

ProtocolOidRequestComplete

ProtocolSetOptions