Compartilhar via


Função QOSCreateHandle (qos2.h)

Essa função inicializa o subsistema QOS e o parâmetro QOSHandle . O parâmetro QOSHandle é usado ao chamar outras funções QOS. QOSCreateHandle deve ser chamado antes de qualquer outra função.

QOSCloseHandle fecha os identificadores criados por essa função.

Sintaxe

ExternC BOOL QOSCreateHandle(
  [in]  PQOS_VERSION Version,
  [out] PHANDLE      QOSHandle
);

Parâmetros

[in] Version

Ponteiro para uma estrutura QOS_VERSION que indica a versão do QOS que está sendo usada. O membro MajorVersion deve ser definido como 1 e o membro MinorVersion deve ser definido como 0.

[out] QOSHandle

Ponteiro para uma variável que recebe um identificador QOS. Esse identificador é usado ao chamar outras funções de QOS.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será 0. Para obter informações de erro estendidas, chame GetLastError. Alguns códigos de erro possíveis seguem.

Código de retorno Descrição
ERROR_GEN_FAILURE
Erro de lógica interna. Falha de inicialização. Por exemplo, se o host entrar no modo de suspensão ou em espera, todos os identificadores e fluxos existentes serão inválidos.
ERROR_INVALID_PARAMETER
O parâmetro QOSHandle é inválido.
ERROR_NOT_ENOUGH_MEMORY
Indica que uma alocação de memória falhou.
ERROR_NO_SYSTEM_RESOURCES
Não há recursos suficientes para executar a operação.
ERROR_RESOURCE_DISABLED
Um recurso exigido pelo serviço não está disponível. Esse erro poderá ser retornado se o usuário não tiver habilitado a exceção de firewall para o serviço qWAVE.
ERROR_SERVICE_DEPENDENCY_FAIL
Uma das dependências desse serviço não está disponível. Não foi possível iniciar o serviço qWAVE.

Comentários

Cada processo que pretende usar qWAVE deve primeiro chamar QOSCreateHandle. O identificador retornado pode ser usado para executar E/S sobreposta. Por exemplo, esse identificador pode ser associado a uma IOCP (porta de conclusão de E/S) para receber notificações de conclusão sobrepostas. Essa função pode ser chamada várias vezes para obter vários identificadores, embora um único identificador seja suficiente para a maioria dos aplicativos.

Se um computador entrar em um modo de economia de energia que interrompa a conectividade, como suspensão ou espera, experimentos de rede existentes e ativos, como QOSStartTrackingClient , deverão ser reinicializados. Essa recriação do fluxo espelha as atividades de limpeza e criação também necessárias para soquetes existentes. Um novo identificador deve ser criado e o fluxo deve ser recriado e readmitido.

Exemplos

O código a seguir ilustra o uso da função e as inicializações de parâmetro necessárias. Os valores reais variam dependendo da versão do QoS.

Winsock.h deve ser incluído para usar a função WSAGetLastError .

Consulte o SDK do Windows para obter uma listagem de código de exemplo completa. Pasta do SDK: Samples\NetDs\GQos\Qos2

QOS_VERSION Version;
HANDLE      QoSHandle = NULL;
BOOL        QoSResult = FALSE;

// Initialize the QoS version parameter.
Version.MajorVersion = 1;
Version.MinorVersion = 0;

// Get a handle to the QoS subsystem.
QoSResult = QOSCreateHandle(
    &Version, 
    &QoSHandle );

if (QoSResult != TRUE)
{
    std::cerr << "QOSCreateHandle failed. Error: "; 
    std::cerr << WSAGetLastError() << std::endl;
}



Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho qos2.h (inclua Qos2.h)
Biblioteca Qwave.lib
DLL Qwave.dll

Confira também

Experiência de áudio/vídeo do Windows de qualidade (qWAVE)