RpcServerInqCallAttributesA 함수(rpcasync.h)
RpcServerInqCallAttributes 함수는 클라이언트 보안 컨텍스트 특성을 가져오는 RPC 서버 호출입니다.
구문
RPC_STATUS RpcServerInqCallAttributesA(
[in] RPC_BINDING_HANDLE ClientBinding,
[in, out] void *RpcCallAttributes
);
매개 변수
[in] ClientBinding
선택 사항입니다. 서버 루틴 내에서 명시적 바인딩의 경우 ClientBinding 은 관리자 루틴이 호출된 바인딩 핸들입니다. 설명 부분을 참조하세요.
[in, out] RpcCallAttributes
호출 특성을 수신하는 RPC_CALL_ATTRIBUTES_V2 구조체입니다.
반환 값
성공하면 RPC_S_OK 반환하고 RpcCallAttributes 가 채워집니다. ERROR_MORE_DATA 반환되면 RpcCallAttributes 의 하나 이상의 필드 길이가 부족하여 채울 수 없습니다. ERROR_MORE_DATA 처리에 대한 자세한 내용은 RPC_CALL_ATTRIBUTES_V2 설명을 참조하세요.
실패하면 RpcCallAttributes 의 내용이 정의되지 않으며 RPC에서 부분적으로 수정할 수 있습니다.
설명
RpcServerInqCallAttributes 함수는 버전 관리 체계를 사용하여 접미사 식별자를 사용하여 새 함수를 도입하지 않고도 새 기능을 통합합니다. 예를 들어 헤더에서 간단한 #define 식별되는 두 번째 버전의 RPC_CALL_ATTRIBUTES_V2 RpcServerInqCallAttributesEx라는 함수를 해제하지 않고도 RpcServerInqCallAttributes 함수의 이후 버전에 기본 제공되는 새 기능을 용이하게 하는 새 멤버를 추가할 수 있습니다.
RpcServerInqCallAttributes 함수가 서버 루틴 외부에서 호출되고 함수 호출이 비동기 RPC 호출에 대한 보안 컨텍스트 특성을 쿼리하는 경우 비동기 핸들에서 RpcAsyncGetCallHandle 함수를 호출하여 ClientBinding을 검색할 수 있습니다.
RpcServerInqCallAttributes 함수는 ncadg_*와 같은 데이터그램 프로토콜 시퀀스에 대해 지원되지 않습니다. 데이터그램 프로토콜 시퀀스에서 실행되는 호출에서 호출되면 RPC_S_CANNOT_SUPPORT 반환됩니다.
RpcServerInqCallAttributes 함수는 스레드로부터 안전합니다.
예제
RPC_CALL_ATTRIBUTES CallAttributes; // this maps to RPC_CALL_ATTRIBUTES_V1
memset(&CallAttributes, 0, sizeof(CallAttributes));
CallAttributes.Version = RPC_CALL_ATTRIBUTES_VERSION; // maps to 1
CallAttributes.Flags = ;//....
Status = RpcServerInqCallAttributes(0, &ClientContextAttributes);
참고
rpcasync.h 헤더는 RpcServerInqCallAttributes를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | rpcasync.h(Rpc.h 포함) |
라이브러리 | Rpcrt4.lib |
DLL | Rpcrt4.dll |