QOSCreateHandle 함수(qos2.h)
이 함수는 QOS 하위 시스템 및 QOSHandle 매개 변수를 초기화합니다. QOSHandle 매개 변수는 다른 QOS 함수를 호출할 때 사용됩니다. QOSCreateHandle은 다른 함수 앞에 호출되어야 합니다.
QOSCloseHandle 은 이 함수에서 만든 핸들을 닫습니다.
구문
ExternC BOOL QOSCreateHandle(
[in] PQOS_VERSION Version,
[out] PHANDLE QOSHandle
);
매개 변수
[in] Version
사용 중인 QOS 버전을 나타내는 QOS_VERSION 구조체에 대한 포인터입니다. MajorVersion 멤버를 1로 설정하고 MinorVersion 멤버를 0으로 설정해야 합니다.
[out] QOSHandle
QOS 핸들을 수신하는 변수에 대한 포인터입니다. 이 핸들은 다른 QOS 함수를 호출할 때 사용됩니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. 몇 가지 가능한 오류 코드는 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
내부 논리 오류입니다. 초기화하지 못했습니다. 예를 들어 호스트가 절전 모드 또는 대기 모드로 전환되면 모든 기존 핸들과 흐름이 잘못 렌더링됩니다. |
|
QOSHandle 매개 변수가 잘못되었습니다. |
|
메모리 할당이 실패했음을 나타냅니다. |
|
작업을 수행할 리소스가 부족합니다. |
|
서비스에 필요한 리소스를 사용할 수 없습니다. 사용자가 qWAVE 서비스에 대한 방화벽 예외를 사용하도록 설정하지 않은 경우 이 오류가 반환될 수 있습니다. |
|
이 서비스의 종속성 중 하나를 사용할 수 없습니다. qWAVE 서비스를 시작할 수 없습니다. |
설명
qWAVE를 사용하려는 모든 프로세스는 먼저 QOSCreateHandle을 호출해야 합니다. 반환된 핸들은 겹치는 I/O를 수행하는 데 사용할 수 있습니다. 예를 들어 이 핸들을 IOCP(I/O 완료 포트)와 연결하여 겹치는 완료 알림을 받을 수 있습니다. 이 함수는 여러 핸들을 얻기 위해 여러 번 호출할 수 있지만 단일 핸들은 대부분의 애플리케이션에 충분합니다.
컴퓨터가 절전 모드 또는 대기와 같은 연결을 중단하는 절전 모드로 전환되면 QOSStartTrackingClient 와 같은 기존 및 활성 네트워크 실험을 다시 시작해야 합니다. 이렇게 흐름을 다시 만들면 기존 소켓에 필요한 정리 및 만들기 작업도 미러링됩니다. 새 핸들을 만들어야 하며 흐름을 다시 만들고 다시 사용해야 합니다.
예제
다음 코드에서는 함수 사용 및 필수 매개 변수 초기화를 보여 줍니다. 실제 값은 QoS 버전에 따라 달라집니다.
WSAGetLastError 함수를 사용하려면 Winsock.h를 포함해야 합니다.
전체 샘플 코드 목록은 Windows SDK 참조하세요. 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;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | qos2.h(Qos2.h 포함) |
라이브러리 | Qwave.lib |
DLL | Qwave.dll |