WsCloseChannel 함수(webservices.h)
지정된 채널을 닫습니다.
구문
HRESULT WsCloseChannel(
[in] WS_CHANNEL *channel,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
);
매개 변수
[in] channel
닫을 채널을 나타내는 WS_CHANNEL 구조체에 대한 포인터입니다.
[in, optional] asyncContext
함수를 비동기적으로 호출하기 위한 정보를 포함하는 WS_ASYNC_CONTEXT 데이터 구조체에 대한 포인터입니다. NULL 값을 전달하여 함수를 동기적으로 호출합니다.
[in, optional] error
함수가 실패할 경우 추가 오류 정보가 저장되는 WS_ERROR 구조체에 대한 포인터입니다.
반환 값
함수가 성공하면 NO_ERROR 반환합니다. 그렇지 않으면 HRESULT 오류 코드가 반환됩니다.
반환 코드 | 설명 |
---|---|
|
비동기 작업은 아직 보류 중입니다. |
|
채널이 닫히는 동안 WsAbortChannel 에 대한 호출로 채널 폐쇄가 중단되었습니다. |
|
채널이 부적절한 상태였습니다(주의 섹션 참조). |
|
원격 엔드포인트와의 연결이 종료되었습니다. |
|
원격 엔드포인트에서 요청을 처리할 수 없습니다. |
|
입력 데이터가 예상 형식이 아니거나 예상 값이 없습니다. |
|
할당된 시간 내에 작업이 완료되지 않았습니다. |
|
할당량을 초과했습니다. |
|
메모리가 부족하여 작업을 완료할 수 없습니다. |
|
하나 이상의 인수가 잘못되었습니다. |
|
이 함수는 위에 나열되지 않은 다른 오류를 반환할 수 있습니다. |
설명
채널을 열거나 채널을 수락하는 경우 더 이상 필요하지 않은 경우 채널을 닫아야 합니다. 채널이 닫힌 후 연결된 리소스를 안전하게 해제할 수 있습니다.
채널 닫기 프로세스는 이미 시작된 보류 중인 I/O가 완료될 때까지 기다립니다.
현재 채널에 대해 읽거나 쓰는 메시지가 없는 경우 채널은 정상적인 종료를 시도합니다. 그렇지 않으면 채널 자체에서 보류 중인 모든 I/O가 중단되고 채널이 무례하게 종료됩니다.
채널이 정상 종료를 시도하지만 오류가 발생하면 WsCloseChannel 에서 오류를 반환하지만 채널은 여전히 닫힙니다.
이 작업은 채널이 WS_CHANNEL_STATE_OPEN 또는 WS_CHANNEL_STATE_FAULTED 상태인 경우에만 허용됩니다.
채널을 닫으면 읽거나 쓰는 과정에 있는 모든 메시지의 연결이 자동으로 해제됩니다. 따라서 WsCloseChannel을 호출하기 전에 WsAbandonMessage를 호출할 필요가 없습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | webservices.h |
라이브러리 | WebServices.lib |
DLL | WebServices.dll |