QOSCloseHandle 함수(qos2.h)
QOSCloseHandle 함수는 QOSCreateHandle 함수에서 반환된 핸들을 닫습니다.
구문
ExternC BOOL QOSCloseHandle(
[in] HANDLE QOSHandle
);
매개 변수
[in] QOSHandle
QOSCreateHandle에서 반환된 QOS 하위 시스템에 대한 핸들입니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
반환 코드 | 설명 |
---|---|
|
QOSHandle 매개 변수가 잘못되었습니다. |
설명
닫히는 핸들에 추가된 모든 흐름은 시스템에서 즉시 제거됩니다. 이러한 흐름을 만드는 데 사용되는 소켓에서 나가는 트래픽은 더 이상 우선 순위 값으로 표시되지 않습니다. 이러한 흐름에 대한 보류 중인 작업은 ERROR_ABORTED 즉시 완료됩니다.
QOSStartTrackingClient 함수에 대한 이전 호출로 핸들을 통해 클라이언트가 닫히는 경우 QOSCloseHandle은 애플리케이션이 더 이상 클라이언트 엔드포인트를 사용하지 않음을 나타냅니다.
예제
다음 "CleanUpQos" 함수는 QOSRemoveSocketFromFlow 및 QOSCloseHandle의 사용을 보여 줍니다.
전체 샘플 코드 목록은 Windows SDK 참조하세요. SDK 폴더: Samples\NetDs\GQos\Qos2
Winsock 정의 식별자 또는 함수를 사용하려면 Winsock2.h 헤더 파일을 포함해야 합니다.
int CleanUpQos( HANDLE qosHandle,
SOCKET connSocket,
QOS_FLOWID qosFlowId,
DWORD qosFlags // qosFlags must be 0
)
{
// To ensure against generating an ERROR_OPERATION_ABORTED exception
// use a separate thread and Mutex protection to verify completion
// of QOSRemoveSocketFromFlow before calling QOSCloseHandle.
int result = 0;
if (qosFlowId != 0)
{
if( QOSRemoveSocketFromFlow(
qosHandle,
connSocket,
qosFlowId,
qosFlags) != TRUE)
result = WSAGetLastError();
}
// Under Mutex protection, add Wait function here.
if (qosHandle != NULL)
{
if( QOSCloseHandle(qosHandle) != TRUE)
result = WSAGetLastError();
}
return(result);
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | qos2.h(Qos2.h 포함) |
라이브러리 | Qwave.lib |
DLL | Qwave.dll |