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 |
---|---|
|
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. |
|
O parâmetro QOSHandle é inválido. |
|
Indica que uma alocação de memória falhou. |
|
Não há recursos suficientes para executar a operação. |
|
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. |
|
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 |