共用方式為


NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS 結構 (ndis.h)

NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS 結構會指定將這個結構傳遞給 的驅動程式 CoNDIS 呼叫管理員 ProtocolXxx 函式 NdisSetOptionalHandlers 函式

語法

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;

成員

Header

呼叫管理員 CoNDIS 特性結構的 NDIS_OBJECT_HEADER 結構 (NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS) 。 設定 Header 指定要NDIS_OBJECT_TYPE_CO_CALL_MANAGER_OPTIONAL_HANDLERS之結構的 Type 成員、要NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS_REVISION_1的 Revision 成員,以及要NDIS_SIZEOF_CO_CALL_MANAGER_OPTIONAL_HANDLERS_REVISION_1的 Size 成員。

Reserved

保留給 NDIS。

CmCreateVcHandler

呼叫端 ProtocolCoCreateVc 函式的進入點。

CmDeleteVcHandler

呼叫端 ProtocolCoDeleteVc 函式的進入點。

CmOpenAfHandler

呼叫端 ProtocolCmOpenAf 函式的進入點。

CmCloseAfHandler

呼叫端 ProtocolCmCloseAf 函式的進入點。

CmRegisterSapHandler

呼叫端的進入點 ProtocolCmRegisterSap 函式。

CmDeregisterSapHandler

呼叫端的進入點 ProtocolCmDeregisterSap 函式。

CmMakeCallHandler

呼叫端 ProtocolCmMakeCall 函式的進入點。

CmCloseCallHandler

呼叫端的進入點 ProtocolCmCloseCall 函式。

CmIncomingCallCompleteHandler

呼叫端的進入點 ProtocolCmIncomingCallComplete 函式

CmAddPartyHandler

呼叫端 ProtocolCmAddParty 函式的進入點。

CmDropPartyHandler

呼叫端的進入點 ProtocolCmDropParty 函式

CmActivateVcCompleteHandler

呼叫端的進入點 ProtocolCmActivateVcComplete 函 式。

CmDeactivateVcCompleteHandler

呼叫端的進入點 ProtocolCmDeactivateVcComplete 函 式。

CmModifyCallQoSHandler

呼叫端的進入點 ProtocolCmModifyCallQoS 函 式。

CmOidRequestHandler

呼叫端的進入點 ProtocolCoOidRequest 函式。

CmOidRequestCompleteHandler

呼叫端的進入點 ProtocolCoOidRequestComplete 函式

CmNotifyCloseAfCompleteHandler

呼叫端的進入點 ProtocolCmNotifyCloseAfComplete 函 式。

備註

若要將進入點指定為 CoNDIS 呼叫管理員,通訊協定驅動程式或迷你埠呼叫管理員 (MCM) 初始化NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS結構,並將其傳遞至 NdisSetOptionalHandlers 函式

獨立呼叫管理員條件約束

獨立呼叫管理員會從 ProtocolSetOptions 函式呼叫 NdisSetOptionalHandlers。 呼叫管理員必須在呼叫 NdisSetOptionalHandlers 時,將NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS結構中的每個進入點設定為驅動程式提供的 ProtocolXxx 函式,即使呼叫管理員不支援來電、傳出呼叫或點對多點連線也一樣。 對於這類呼叫管理員不支援的連接導向功能子集,其佔位符 ProtocolXxx 函式應該只會傳回NDIS_STATUS_NOT_SUPPORTED。

在獨立呼叫管理員呼叫 之後 NdisCmRegisterAddressFamilyEx 函式成功,NDIS 會忽略先前為 呼叫管理員指定的任何進入點 的 ProtocolOidRequestComplete 函式 NDIS_PROTOCOL_DRIVER_CHARACTERISTICS 傳遞至的結構 NdisRegisterProtocolDriver 函 式。

MCM 條件約束

MCM 會從 MiniportSetOptions 函式呼叫 NdisSetOptionalHandlers 函式。 MCM 必須將NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS結構中的每個 CmXxx 成員設定為 MCM 提供的 ProtocolXxx 函式,即使 MCM 不支援來電、傳出呼叫或點對多點連線也一樣。 對於這類 MCM 驅動程式不支援的連線導向功能子集,其 ProtocolXxx 函式應該只會傳回NDIS_STATUS_NOT_SUPPORTED。 例如,NDIS 永遠不會呼叫已註冊的 MCM 驅動程式 ProtocolCmActivateVcComplete ProtocolCmDeactivateVcComplete 函式,因此這些函式可以傳回NDIS_STATUS_NOT_SUPPORTED,但必須具有NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS結構中的進入點。

MCM 驅動程式必須指定 ProtocolCoCreateVcProtocolCoDeleteVc 函式的進入點。 如果 MCM 先前已註冊 MiniportCoCreateVcMiniportCoDeleteVc 函式。 每當 NDIS 呼叫 MCM 驅動程式來建立或刪除虛擬連線時,NDIS 會忽略這些函式的進入點, (VC) 。 因此,NDIS 會將初始參數的 NdisAfHandle 值傳遞給非 MCM 迷你埠驅動程式的 MCM 提供的 ProtocolCoCreateVcProtocolCoDeleteVc 函式,而不是傳遞至 MiniportCoCreateVcMiniportCoDeleteVc 函式的 MiniportAdapterContext 值。

MCM 驅動程式無法將 NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS 的 CmOidRequestHandler 成員設定為其 MiniportCoOidRequest 函式。 驅動程式必須為 ProtocolCoOidRequest 函式提供個別的進入點。 MCM 驅動程式必須具有 ProtocolCoOidRequest 函式,才能處理來自 CoNDIS 用戶端的呼叫管理員要求,而且必須具有 ProtocolCoOidRequestComplete 函式

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
標頭 ndis.h (包含 Ndis.h)

另請參閱

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