다음을 통해 공유


WsAcceptChannel 함수(webservices.h)

지정된 수신기에서 들어오는 다음 메시지를 수락 합니다.

구문

HRESULT WsAcceptChannel(
  [in]           WS_LISTENER            *listener,
  [in]           WS_CHANNEL             *channel,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

매개 변수

[in] listener

수신기를 나타내는 WS_LISTENER 구조체에 대한 포인터입니다. 채널을 만들 때 WsCreateChannelForListener 에 전달된 수신기입니다.

[in] channel

수락할 채널을 나타내는 WS_CHANNEL 구조체에 대한 포인터입니다.

[in, optional] asyncContext

함수를 비동기적으로 호출하기 위한 정보가 있는 WS_ASYNC_CONTEXT 데이터 구조체에 대한 포인터입니다. 동기 작업에 대한 NULL 값을 전달합니다.

[in, optional] error

함수가 실패할 경우 추가 오류 정보를 수신하는 WS_ERROR 구조체에 대한 포인터입니다.

반환 값

함수가 성공하면 NO_ERROR 반환합니다. 그렇지 않으면 HRESULT 오류 코드를 반환합니다.

반환 코드 설명
WS_S_ASYNC
비동기 작업은 아직 보류 중입니다.
WS_E_OPERATION_ABORTED
수신기 또는 채널이 중단되었습니다.
WS_E_OBJECT_FAULTED
수신기에 오류가 발생했습니다. 주의 섹션을 참조하십시오.
WS_E_INVALID_OPERATION
수신기 또는 채널 또는 둘 다 부적절한 상태였습니다. 주의 섹션을 참조하십시오.
WS_E_ENDPOINT_DISCONNECTED
원격 엔드포인트와의 연결이 종료되었습니다.
WS_E_OPERATION_TIMED_OUT
할당된 시간 내에 작업이 완료되지 않았습니다.
WS_E_QUOTA_EXCEEDED
할당량을 초과했습니다.
WS_E_INVALID_FORMAT
입력 데이터가 예상 형식이 아니거나 예상 값이 없습니다.
E_OUTOFMEMORY
메모리가 부족하여 작업을 완료할 수 없습니다.
E_INVALIDARG
하나 이상의 인수가 잘못되었습니다.
WS_E_SECURITY_VERIFICATION_FAILURE
수신된 데이터에 대한 보안 확인에 성공하지 못했습니다.
WS_E_SECURITY_SYSTEM_FAILURE
Windows Web Services 프레임워크에서 보안 작업이 실패했습니다.
기타 오류
이 함수는 위에 나열되지 않은 다른 오류를 반환할 수 있습니다.

설명

채널을 수락한 후에는 채널이 더 이상 필요하지 않을 때 채널을 닫고 를 호출하여 리소스를 해제해야 합니다.
WsCloseChannel 함수를 호출한 다음 WsFreeChannel 또는 WsResetChannel을 호출합니다. 합니다.

WsAcceptChannel이 성공하려면 수신기가 WS_LISTENER_STATE_OPEN 상태여야 하며 채널이 WS_CHANNEL_STATE_CREATED 상태여야 합니다. 자세한 내용은 WS_LISTENER_STATEWS_CHANNEL_STATE 열거형을 참조하세요.

수신기가 WS_LISTENER_STATE_FAULTED 상태인 경우
WsAcceptChannel은WS_E_OBJECT_FAULTED 오류 코드를 즉시 반환합니다. 애플리케이션이 루프에서 WsAcceptChannel을 호출하는 경우 애플리케이션은 루프를 종료할 수 있도록 이 오류에 대해 검사 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 webservices.h
라이브러리 WebServices.lib
DLL WebServices.dll