다음을 통해 공유


QOSCloseHandle 함수(qos2.h)

QOSCloseHandle 함수는 QOSCreateHandle 함수에서 반환된 핸들을 닫습니다.

구문

ExternC BOOL QOSCloseHandle(
  [in] HANDLE QOSHandle
);

매개 변수

[in] QOSHandle

QOSCreateHandle에서 반환된 QOS 하위 시스템에 대한 핸들입니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

반환 코드 설명
ERROR_INVALID_PARAMETER
QOSHandle 매개 변수가 잘못되었습니다.

설명

닫히는 핸들에 추가된 모든 흐름은 시스템에서 즉시 제거됩니다. 이러한 흐름을 만드는 데 사용되는 소켓에서 나가는 트래픽은 더 이상 우선 순위 값으로 표시되지 않습니다. 이러한 흐름에 대한 보류 중인 작업은 ERROR_ABORTED 즉시 완료됩니다.

QOSStartTrackingClient 함수에 대한 이전 호출로 핸들을 통해 클라이언트가 닫히는 경우 QOSCloseHandle은 애플리케이션이 더 이상 클라이언트 엔드포인트를 사용하지 않음을 나타냅니다.

예제

다음 "CleanUpQos" 함수는 QOSRemoveSocketFromFlowQOSCloseHandle의 사용을 보여 줍니다.

전체 샘플 코드 목록은 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

추가 정보

품질 Windows 오디오/비디오 환경(qWAVE)