使用英语阅读

通过


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 约束

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 驱动程序必须为 ProtocolCoCreateVcProtocolCoDeleteVc 函数指定入口点。 如果 MCM 之前注册了 MiniportCoCreateVcMiniportCoDeleteVc 函数。 每当 NDIS 调用 MCM 驱动程序以创建或删除虚拟连接(VC)时,NDIS 将忽略这些函数的入口点。 因此,NDIS 会将初始参数的 NdisAfHandle 值传递给 MCM 提供的 ProtocolCoCreateVcProtocolCoDeleteVc 函数, 与其 MiniportAdapterContext 值,而是传递给非 MCM 微型端口驱动程序的 MiniportCoCreateVcMiniportCoDeleteVc 函数。

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