estrutura NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS (ndis.h)

A estrutura NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS especifica funções protocolXxx do gerenciador de chamadas CoNDIS para o driver que passa essa estrutura para o Função NdisSetOptionalHandlers .

Sintaxe

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;

Membros

Header

A estrutura NDIS_OBJECT_HEADER para a estrutura de características do CoNDIS do gerenciador de chamadas (NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS). Defina o membro Type da estrutura especificada por Header como NDIS_OBJECT_TYPE_CO_CALL_MANAGER_OPTIONAL_HANDLERS, o membro Revision como NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS_REVISION_1 e o membro Size como NDIS_SIZEOF_CO_CALL_MANAGER_OPTIONAL_HANDLERS_REVISION_1.

Reserved

Reservado para NDIS.

CmCreateVcHandler

O ponto de entrada da função ProtocolCoCreateVc do chamador.

CmDeleteVcHandler

O ponto de entrada da função ProtocolCoDeleteVc do chamador.

CmOpenAfHandler

O ponto de entrada da função ProtocolCmOpenAf do chamador.

CmCloseAfHandler

O ponto de entrada da função ProtocolCmCloseAf do chamador.

CmRegisterSapHandler

O ponto de entrada do chamador Função ProtocolCmRegisterSap .

CmDeregisterSapHandler

O ponto de entrada do chamador Função ProtocolCmDeregisterSap .

CmMakeCallHandler

O ponto de entrada da função ProtocolCmMakeCall do chamador.

CmCloseCallHandler

O ponto de entrada do chamador Função ProtocolCmCloseCall .

CmIncomingCallCompleteHandler

O ponto de entrada do chamador Função ProtocolCmIncomingCallComplete .

CmAddPartyHandler

O ponto de entrada da função ProtocolCmAddParty do chamador.

CmDropPartyHandler

O ponto de entrada do chamador Função ProtocolCmDropParty .

CmActivateVcCompleteHandler

O ponto de entrada do chamador Função ProtocolCmActivateVcComplete .

CmDeactivateVcCompleteHandler

O ponto de entrada do chamador Função ProtocolCmDeactivateVcComplete .

CmModifyCallQoSHandler

O ponto de entrada do chamador Função ProtocolCmModifyCallQoS .

CmOidRequestHandler

O ponto de entrada do chamador Função ProtocolCoOidRequest .

CmOidRequestCompleteHandler

O ponto de entrada do chamador Função ProtocolCoOidRequestComplete .

CmNotifyCloseAfCompleteHandler

O ponto de entrada do chamador Função ProtocolCmNotifyCloseAfComplete .

Comentários

Para especificar pontos de entrada como um gerenciador de chamadas coNDIS, um driver de protocolo ou um MCM (gerenciador de chamadas de miniporto) inicializa uma estrutura NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS e a passa para o Função NdisSetOptionalHandlers .

Restrições autônomas do Gerenciador de Chamadas

Um gerenciador de chamadas autônomo chama NdisSetOptionalHandlers da função ProtocolSetOptions . O gerenciador de chamadas deve definir cada ponto de entrada na estrutura NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS para uma função ProtocolXxx fornecida pelo driver quando chama NdisSetOptionalHandlers, mesmo que o gerenciador de chamadas não dê suporte a chamadas recebidas, chamadas de saída ou conexões ponto a ponto. Para qualquer subconjunto de funcionalidade orientada à conexão que esse gerenciador de chamadas não dá suporte, suas funções protocolXxx de espaço reservado devem simplesmente retornar NDIS_STATUS_NOT_SUPPORTED.

Depois que um gerenciador de chamadas autônomo chamar o Função NdisCmRegisterAddressFamilyEx com êxito, o NDIS ignora qualquer ponto de entrada especificado anteriormente pelo gerenciador de chamadas para o Função ProtocolOidRequestComplete do NDIS_PROTOCOL_DRIVER_CHARACTERISTICS estrutura que passou para o Função NdisRegisterProtocolDriver .

Restrições de MCM

Um MCM chama a função NdisSetOptionalHandlers da função MiniportSetOptions . O MCM deve definir cada membro CmXxx na estrutura NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS para uma função ProtocolXxx fornecida pelo MCM, mesmo que o MCM não dê suporte a chamadas de entrada, chamadas de saída ou conexões ponto a ponto. Para qualquer subconjunto de funcionalidade orientada à conexão que um driver MCM não dá suporte, suas funções ProtocolXxx devem simplesmente retornar NDIS_STATUS_NOT_SUPPORTED. Por exemplo, o NDIS nunca chama um driver MCM registrado ProtocolCmActivateVcComplete ou Função ProtocolCmDeactivateVcComplete , para que essas funções possam retornar NDIS_STATUS_NOT_SUPPORTED mas devem ter pontos de entrada na estrutura NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS.

Um driver MCM deve especificar pontos de entrada para as funções ProtocolCoCreateVc e ProtocolCoDeleteVc . Se o MCM registrou anteriormente uma função MiniportCoCreateVc ou MiniportCoDeleteVc . O NDIS ignora os pontos de entrada dessas funções, sempre que o NDIS chama o driver MCM para criar ou excluir uma VC (conexão virtual). Portanto, o NDIS passa um valor NdisAfHandle para o parâmetro inicial para a função ProtocolCoCreateVc ou ProtocolCoDeleteVc fornecida por MCM, em vez do valor MiniportAdapterContext que ele passaria para a função MiniportCoCreateVc ou MiniportCoDeleteVc de um driver de miniport não MCM.

Um driver MCM não pode definir o membro CmOidRequestHandler de NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS para sua função MiniportCoOidRequest . O driver deve fornecer um ponto de entrada separado para uma função ProtocolCoOidRequest . Um driver MCM deve ter uma função ProtocolCoOidRequest para lidar com solicitações do gerenciador de chamadas de clientes CoNDIS e deve ter um Função ProtocolCoOidRequestComplete .

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Cabeçalho ndis.h (inclua Ndis.h)

Confira também

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