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 指定的结构的 Type 成员设置为 NDIS_OBJECT_TYPE_CO_CALL_MANAGER_OPTIONAL_HANDLERS,将 Revision 成员设置为 NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS_REVISION_1,将 Size 成员设置为 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 约束
MCM 从 MiniportSetOptions 函数调用 NdisSetOptionalHandlers 函数。 即使 MCM 不支持传入呼叫、传出呼叫或点到多点连接,MCM 也必须将 NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS 结构中的每个 Cm Xxx 成员都设置为 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 函数,而不是传递给非 MCM 微型端口驱动程序的 MiniportCoCreateVc 或 MiniportCoDeleteVc 函数的 MiniportAdapterContext 值。
MCM 驱动程序无法将 NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS 的 CmOidRequestHandler 成员设置为其 MiniportCoOidRequest 函数。 驱动程序必须为 ProtocolCoOidRequest 函数提供单独的入口点。 MCM 驱动程序必须具有 ProtocolCoOidRequest 函数来处理来自 CoNDIS 客户端的调用管理器请求,并且必须具有 ProtocolCoOidRequestComplete 函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
标头 | ndis.h (包括 Ndis.h) |