RpcBindingSetOption 함수(rpcdce.h)
RpcBindingSetOption 함수를 사용하면 클라이언트 애플리케이션이 바인딩 핸들에 메시지 큐 옵션을 지정할 수 있습니다.
구문
RPC_STATUS RpcBindingSetOption(
RPC_BINDING_HANDLE hBinding,
unsigned long option,
ULONG_PTR optionValue
);
매개 변수
hBinding
수정할 서버 바인딩입니다.
option
수정할 바인딩 속성입니다. 바인딩 옵션 및 해당 가능한 값 목록은 바인딩 옵션 상수를 참조하세요. RPC 통화 시간 제한 기능에 대한 자세한 내용은 설명을 참조하세요.
optionValue
바인딩 속성의 새 값입니다. 설명 부분을 참조하세요.
반환 값
값 | 의미 |
---|---|
|
호출이 성공했습니다. |
|
함수는 운영 체제 또는 전송에 대해 지원되지 않습니다. ncacn_* 이외의 프로토콜 시퀀스를 사용하는 바인딩 핸들에서 RpcBindingSetOption을 호출하면 이 값이 실패하고 반환됩니다. |
설명
RPC 클라이언트 프로세스는 RpcBindingSetOption을 사용하여 배달 서비스 품질, 호출 로깅 및 호출 수명을 제어합니다. 바인딩 핸들 속성을 변경하면 RpcBindingSetOption에 대한 다른 호출에 의해 속성이 변경될 때까지 모든 원격 호출에 영향을 줍니다. RpcBindingSetAuthInfo를 호출하여 바인딩 핸들에 대한 보안 옵션을 설정할 수도 있습니다.
Windows XP: RPC 호출 시간 제한 기능:
Option이 RPC_C_OPT_CALL_TIMEOUT 설정되고 OptionValue가 시간 제한 값(밀리초)으로 설정된 RpcBindingSetOption 함수를 호출하면 개발자는 스레드가 응답하지 않는 RPC 서버에 포로가 되지 않도록 하는 RPC 서버 시간 초과를 설정할 수 있습니다. 이 기능을 사용하면 개발자가 응답하지 않는 RPC 서버에 대한 호출을 명시적으로 취소할 수 없습니다. 시간 제한에 대한 타이머 모니터링은 각 패킷을 수신하면 RPC 클라이언트에 의해 다시 설정됩니다. 서버에서 패킷을 받지 않고 제한 시간이 만료되면 RPC 클라이언트는 RPC_S_CALL_CANCELLED 반환합니다. 클라이언트가 응답을 삭제하더라도 RPC 서버는 결국 호출을 실행할 수 있습니다.
무한 시간 제한에 대해 OptionValue 를 INFINITE 또는 0으로 설정합니다. 호출이 진행 중인 동안 다른 스레드에서 이 옵션을 변경하지 마세요. 취소된 호출을 다시 시도하지 마세요. 이렇게 하면 이미 응답하지 않는 서버에 대한 부담이 증가합니다. RPC 호출 시간 제한 기능은 ncacn_* 프로토콜 시퀀스에서 수행된 것과 같은 연결 지향 동기 RPC 호출에만 유용합니다. 데이터그램, 비동기 또는 로컬 RPC 호출의 경우 이 옵션은 RPC 런타임에서 무시됩니다.
RPC 호출 시간 제한 기능은 사용 중인 RPC 서버가 응답할 때까지 기다리는 사용자 인터페이스 업데이트(사용자가 모래시계를 시청하지 않음) 또는 많은 RPC 서버가 요청을 처리할 수 있는 경우와 같은 많은 상황에서 유용합니다. 따라서 클라이언트는 응답하지 않는 서버를 보다 빠르게 식별하고 무시할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | rpcdce.h(Rpc.h 포함) |
라이브러리 | Rpcrt4.lib |
DLL | Rpcrt4.dll |