Compartilhar via


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

A função ProtocolClModifyCallQoSComplete é usada por clientes NDIS orientados à conexão que podem modificar a qualidade do serviço em uma conexão dinamicamente. Esses clientes devem ter funções ProtocolClModifyCallQoSComplete para concluir as operações assíncronas iniciadas com NdisClModifyCallQoS. Caso contrário, a função ProtocolClModifyCallQoSComplete do driver de protocolo pode simplesmente retornar o controle.

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

Sintaxe

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE ProtocolClModifyCallQosComplete;

void ProtocolClModifyCallQosComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolVcContext,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parâmetros

[in] Status

Especifica o status final da solicitação assíncrona do cliente para modificar os parâmetros de chamada para esta VC como um dos seguintes:

NDIS_STATUS_SUCCESS

O QoS foi modificado conforme solicitado pelo cliente.

NDIS_STATUS_RESOURCES

O NDIS ou o gerenciador de chamadas não pôde modificar o QoS porque um deles não podia alocar recursos suficientes dinamicamente.

NDIS_STATUS_INVALID_DATA

Os parâmetros de chamada que o cliente forneceu a NdisClModifyCallQoS eram inválidos.

NDIS_STATUS_FAILURE

O gerenciador de chamadas não pôde alterar o QoS devido a uma falha na rede ou em outro componente de rede orientado à conexão.

NDIS_STATUS_XXX

O gerenciador de chamadas não alterou o QoS e o NDIS propagava a falha determinada por CM status para o cliente.

[in] ProtocolVcContext

Especifica o identificador para a área de contexto por VC do cliente, que o cliente originalmente forneceu ao NDIS quando chamou NdisCoCreateVc para configurar a VC para sua solicitação de chamada de saída ou de sua função ProtocolCoCreateVc se o cliente aceitasse uma chamada de entrada nesta VC.

[in] CallParameters

Ponteiro para uma estrutura de CO_CALL_PARAMETERS em buffer que contém a alteração de QoS especificada pelo cliente solicitada ou, possivelmente, o QoS original para essa VC estabelecido quando a conexão foi ativada, que o gerenciador de chamadas restaurou.

Retornar valor

Nenhum

Comentários

Uma chamada para ProtocolClModifyCallQoSComplete indica que o gerenciador de chamadas concluiu o processamento de uma solicitação iniciada pelo cliente para alterar a qualidade do serviço em uma VC ativa. Por exemplo, se o meio de rede subjacente der suporte a alterações dinâmicas de QoS, um cliente poderá solicitar modificações a qualquer momento em uma VC ativa.

Se a chamada do cliente para NdisClModifyCallQoS for bem-sucedida, ProtocolClModifyCallQoSComplete poderá aceitar a alteração de QoS simplesmente retornando o controle. Caso contrário, ProtocolClModifyCallQoSComplete poderá se envolver em mais negociações com o gerenciador de chamadas, desde que o desenvolvedor do cliente coloque algum limite razoável no número de possíveis renegociações. Como alternativa, ProtocolClModifyCallQoSComplete pode simplesmente derrubar a chamada com NdisClCloseCall sempre que o gerenciador de chamadas rejeitar uma solicitação para alterar o QoS e o QoS estabelecido anteriormente se tornou inaceitável para o cliente.

Exemplos

Para definir uma função ProtocolClModifyCallQoSComplete , 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 gravar drivers para o sistema operacional Windows.

Por exemplo, para definir uma função ProtocolClModifyCallQoSComplete chamada "MyClModifyCallQoSComplete", use o tipo PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE conforme mostrado neste exemplo de código:

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE MyClModifyCallQoSComplete;

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

_Use_decl_annotations_
VOID
 MyClModifyCallQoSComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

O tipo de função PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE é 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_CL_MODIFY_CALL_QOS_COMPLETE 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 ProtocolClModifyCallQoSComplete (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte ProtocolClModifyCallQoSComplete (NDIS 5.1)) no Windows XP.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL <= DISPATCH_LEVEL

Confira também

CO_CALL_PARAMETERS

NdisClCloseCall

NdisClModifyCallQoS

NdisCmModifyCallQoSComplete

NdisMCmModifyCallQoSComplete

ProtocolCmModifyCallQoS

ProtocolCoCreateVc