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_CO_CALL_MANAGER_OPTIONAL_HANDLERS)에 대한 NDIS_OBJECT_HEADER 구조체입니다. Header가 NDIS_OBJECT_TYPE_CO_CALL_MANAGER_OPTIONAL_HANDLERS 지정하는 구조체의 Type 멤버, 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 구조의 모든 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는 NDIS가 MCM 드라이버를 호출하여 VC(가상 연결)를 만들거나 삭제할 때마다 이러한 함수의 진입점을 무시합니다. 따라서 NDIS는 MCM이 아닌 미니포트 드라이버의 MiniportCoCreateVc 또는 MiniportCoDeleteVc 함수에 전달할 MiniportAdapterContext 값이 아닌 MCM 제공 ProtocolCoCreateVc 또는 ProtocolCoDeleteVc 함수에 초기 매개 변수에 대한 NdisAfHandle 값을 전달합니다.

MCM 드라이버는 NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS CmOidRequestHandler 멤버를 MiniportCoOidRequest 함수로 설정할 수 없습니다. 드라이버는 ProtocolCoOidRequest 함수에 대한 별도의 진입점을 제공해야 합니다. MCM 드라이버에는 CoNDIS 클라이언트의 호출 관리자 요청을 처리하는 ProtocolCoOidRequest 함수가 있어야 하며 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