다음을 통해 공유


RPC_BINDING_HANDLE

RPC_BINDING_HANDLE 데이터 형식은 RPC 런타임 라이브러리가 바인딩 정보에 액세스하는 데 사용하는 정보를 포함하는 바인딩 핸들을 선언합니다.

typedef I_RPC_HANDLE RPC_BINDING_HANDLE;

설명

런타임 라이브러리는 바인딩 정보를 사용하여 원격 프로시저 호출을 실행할 수 있는 클라이언트-서버 관계를 설정합니다. 바인딩 핸들이 만들어지는 컨텍스트에 따라 서버 바인딩 핸들 또는 클라이언트 바인딩 핸들로 간주됩니다.

서버 바인딩 핸들에는 클라이언트가 특정 서버와의 관계를 설정하는 데 필요한 정보가 포함됩니다. 수많은 RPC API 런타임 루틴은 원격 프로시저 호출에 사용할 수 있는 서버 바인딩 핸들을 반환합니다.

클라이언트 바인딩 핸들을 사용하여 원격 프로시저를 호출할 수 없습니다. RPC 런타임 라이브러리는 RPC_BINDING_HANDLE 매개 변수로 호출된 서버 프로시저(서버 관리자 루틴이라고도 함)에 대한 클라이언트 바인딩 핸들을 만들고 제공합니다. 클라이언트 바인딩 핸들에는 호출 클라이언트에 대한 정보가 포함됩니다.

RpcBinding*RpcNsBinding* 함수는 애플리케이션이 잘못된 바인딩 핸들 형식을 제공하는 경우 상태 코드 RPC_S_WRONG_KIND_OF_BINDING 반환합니다.

애플리케이션은 여러 실행 스레드에서 단일 바인딩 핸들을 공유할 수 있습니다. RPC 런타임 라이브러리는 단일 바인딩 핸들을 사용하는 동시 원격 프로시저 호출을 관리합니다. 그러나 애플리케이션은 바인딩 핸들을 수정하는 작업에 대한 바인딩 핸들 동시성 제어를 담당합니다. 이러한 작업에는 다음 루틴이 포함됩니다.

예를 들어 애플리케이션이 두 개의 실행 스레드에서 바인딩 핸들을 공유하고 RpcBindingReset을 호출하여 스레드 중 하나에서 바인딩 핸들 엔드포인트를 다시 설정하는 경우 결과는 정의되지 않습니다. 다른 스레드의 바인딩 핸들도 다시 설정되거나 작업이 실패하거나 프로세스가 충돌할 수 있습니다. 일반적인 오류는 호출이 진행 중인 동안 바인딩 핸들을 해제하는 것입니다. 일반적으로 호출 프로세스와 충돌합니다.

동시성을 원하지 않는 경우 RpcBindingCopy를 호출하여 바인딩 핸들의 복사본을 만드는 애플리케이션을 디자인할 수 있습니다. 이 경우 첫 번째 바인딩 핸들에 대한 작업은 두 번째 바인딩 핸들에 영향을 주지 않습니다.

바인딩 핸들을 매개 변수로 요구하는 루틴은 RPC_BINDING_HANDLE 데이터 형식을 표시합니다. 바인딩 핸들 매개 변수는 값으로 전달됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Rpcdce.h(Rpc.h 포함)