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)。 将 标头 指定为 NDIS_OBJECT_TYPE_CO_CALL_MANAGER_OPTIONAL_HANDLERS、Revision 成员NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS_REVISION_1以及 大小 成员NDIS_SIZEOF_CO_CALL_MANAGER_OPTIONAL_HANDLERS_REVISION_1的结构 类型 成员。
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 从 MiniportSetOptions 函数调用 NdisSetOptionalHandlers 函数。 即使 MCM 不支持传入呼叫、传出调用或点到多点连接,MCM 还必须将NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS结构中的每个 CmXxx 成员设置为 MCM 提供的 ProtocolXxx 函数。 对于此类 MCM 驱动程序不支持的连接导向功能子集,其 ProtocolXxx 函数应仅返回NDIS_STATUS_NOT_SUPPORTED。 例如,NDIS 从不调用已注册 MCM 驱动程序 ProtocolCmActivateVcComplete 或 ProtocolCmDeactivateVcComplete 函数,因此这些函数可以返回NDIS_STATUS_NOT_SUPPORTED,但必须在NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS结构中具有入口点。MCM 驱动程序必须为 ProtocolCoCreateVc 和 ProtocolCoDeleteVc 函数指定入口点。 如果 MCM 之前注册了 MiniportCoCreateVc 或 MiniportCoDeleteVc 函数。 每当 NDIS 调用 MCM 驱动程序以创建或删除虚拟连接(VC)时,NDIS 将忽略这些函数的入口点。 因此,NDIS 会将初始参数的 NdisAfHandle 值传递给 MCM 提供的 ProtocolCoCreateVc 或 ProtocolCoDeleteVc 函数, 与其 MiniportAdapterContext 值,而是传递给非 MCM 微型端口驱动程序的 MiniportCoCreateVc 或 MiniportCoDeleteVc 函数。
MCM 驱动程序无法将 NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS CmOidRequestHandler 成员设置为其 MiniportCoOidRequest 函数。 驱动程序必须为 ProtocolCoOidRequest 函数提供单独的入口点。 MCM 驱动程序必须具有 ProtocolCoOidRequest 函数才能处理来自 CoNDIS 客户端的调用管理器请求,并且必须具有 ProtocolCoOidRequestComplete 函数。
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.0 及更高版本中受支持。 |
标头 | ndis.h (包括 Ndis.h) |