PROTOCOL_CM_MODIFY_QOS_CALL função de retorno de chamada (ndis.h)

A função ProtocolCmModifyCallQoS é necessária. ProtocolCmModifyCallQoS é chamado pelo NDIS quando um cliente orientado à conexão solicita que os parâmetros de chamada sejam alterados para uma VC (conexão virtual) existente. Se o meio de rede subjacente não der suporte a QoS, ProtocolCmModifyQoS deverá simplesmente retornar NDIS_STATUS_NOT_SUPPORTED.

Nota Você deve declarar a função usando o tipo PROTOCOL_CM_MODIFY_QOS_CALL . Para obter mais informações, consulte a seção Exemplos a seguir.
 

Sintaxe

PROTOCOL_CM_MODIFY_QOS_CALL ProtocolCmModifyQosCall;

NDIS_STATUS ProtocolCmModifyQosCall(
  [in] NDIS_HANDLE CallMgrVcContext,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parâmetros

[in] CallMgrVcContext

Especifica o identificador para uma área de contexto alocada pelo gerenciador de chamadas na qual o gerenciador de chamadas mantém seu estado por VC. O gerenciador de chamadas forneceu esse identificador ao NDIS para sua função ProtocolCoCreateVc .

[in] CallParameters

Ponteiro para uma estrutura CO_CALL_PARAMETERS que contém os novos parâmetros de chamada, conforme especificado por um cliente orientado a conexão, para a VC.

Retornar valor

ProtocolCmModifyQoS retorna o status de suas operações como um dos seguintes valores:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
Indica que o gerenciador de chamadas alterou com êxito os parâmetros da chamada com a rede para os parâmetros de chamada especificados em CallParameters .
NDIS_STATUS_PENDING
Indica que o gerenciador de chamadas concluirá a solicitação para modificar os parâmetros de chamada de forma assíncrona. Quando o gerenciador de chamadas tiver concluído todas as operações necessárias para modificar os parâmetros de chamada, ele deverá chamar NdisCmModifyCallQoSComplete.
NDIS_STATUS_RESOURCES
Indica que o gerenciador de chamadas não pôde alterar os parâmetros de chamada da VC porque os recursos alocados dinamicamente não estavam disponíveis.
NDIS_STATUS_INVALID_DATA
Indica que o gerenciador de chamadas não pôde alterar os parâmetros de chamada da VC porque os parâmetros de chamada fornecidos em CallParameters eram inválidos ou inválidos.
NDIS_STATUS_FAILURE
Indica que os parâmetros de chamada não puderam ser definidos para os parâmetros de chamada fornecidos devido a uma falha na rede ou em outro componente de rede orientado à conexão.

Comentários

ProtocolCmModifyQoS comunica-se com dispositivos de controle de rede ou outros agentes específicos de mídia, conforme necessário por sua mídia, para modificar os parâmetros de chamada específicos da mídia para uma conexão virtual estabelecida. Se o gerenciador de chamadas for necessário para se comunicar com agentes de controle de rede (em outras palavras, um comutador de rede), ele deverá usar uma conexão virtual com os agentes de controle de rede que estabeleceu em sua função ProtocolBindAdapterEx . Os gerenciadores de chamadas autônomos se comunicavam com os agentes de rede chamando NdisCoSendNetBufferLists. Drivers de miniport com suporte integrado de gerenciamento de chamadas nunca chamam NdisCoSendNetBufferLists. Em vez disso, esse driver simplesmente transfere os dados pela rede para o agente de rede de destino.

Depois de se comunicar com a rede e se as alterações tiverem sido bem-sucedidas, o gerenciador de chamadas deverá chamar NdisCmActivateVc com os novos parâmetros de chamada. Isso notifica o NDIS e/ou o driver de miniporto orientado a conexão de que os parâmetros de chamada foram alterados e fornece ao driver de miniporto a oportunidade de validar esses parâmetros.

Se a rede não puder aceitar os novos parâmetros de chamada ou o driver de miniporta subjacente não puder aceitar os parâmetros, o gerenciador de chamadas deverá restaurar a conexão virtual para o estado que existia antes de qualquer modificação ser tentada e retornar NDIS_STATUS_FAILURE.

Exemplos

Para definir uma função ProtocolCmModifyCallQoS , primeiro você deve fornecer uma declaração de função que identifique o tipo de função que você está definindo. O Windows fornece um conjunto de tipos de função para drivers. Declarar uma função usando os tipos de função ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para escrever drivers para o sistema operacional Windows.

Por exemplo, para definir uma função ProtocolCmModifyCallQoS chamada "MyCmModifyCallQoS", use o tipo PROTOCOL_CM_MODIFY_QOS_CALL conforme mostrado neste exemplo de código:

PROTOCOL_CM_MODIFY_QOS_CALL MyCmModifyCallQoS;

Em seguida, implemente sua função da seguinte maneira:

_Use_decl_annotations_
NDIS_STATUS
 MyCmModifyCallQoS(
    NDIS_HANDLE  CallMgrVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

O tipo de função PROTOCOL_CM_MODIFY_QOS_CALL é definido no arquivo de cabeçalho Ndis.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função PROTOCOL_CM_MODIFY_QOS_CALL no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers NDIS.

Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte ProtocolCmModifyCallQoS (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte ProtocolCmModifyCallQoS (NDIS 5.1)) no Windows XP.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL <= DISPATCH_LEVEL
Regras de conformidade da DDI SpinLockBalanced(ndis), SpinLockDpr(ndis)

Confira também

NdisCmActivateVc

NdisCmModifyCallQoSComplete

NdisCoSendNetBufferLists

ProtocolCoCreateVc