context_handle_noserialize 특성
[context_handle_noserialize] ACF 특성은 애플리케이션의 기본 동작에 관계없이 컨텍스트 핸들이 직렬화되지 않도록 보장합니다.
typedef [context_handle_noserialize [ , type-acf-attribute-list ] ] context-handle-type
[context_handle_noserialize [, function-acf-attribute-list ] ] function-name( );
function-name ( [context_handle_noserialize
[ , parameter-acf-attribute-list ] ] param-name );
매개 변수
-
type-acf-attribute-list
-
형식에 적용되는 다른 모든 ACF 특성입니다.
-
context-handle-type
-
typedef 선언에 정의된 컨텍스트 핸들 형식을 지정하는 식별자입니다. IDL 파일에서 [context_handle] 특성을 수신하는 형식입니다.
-
function-acf-attribute-list
-
함수에 적용되는 추가 ACF 특성입니다.
-
function-name
-
IDL 파일에 정의된 함수의 이름입니다.
-
parameter-acf-attribute-list
-
매개 변수에 적용되는 다른 모든 ACF 특성입니다.
-
param-name
-
IDL 파일에 정의된 매개 변수의 이름입니다.
설명
[context_handle] 특성은 원격 프로시저 호출 간에 서버에서 컨텍스트 또는 상태 정보를 유지하는 바인딩 핸들을 식별합니다. 특성은 IDL typedef 형식 특성, 함수 반환 형식 특성 또는 매개 변수 특성으로 표시할 수 있습니다.
기본적으로 컨텍스트 핸들에 대한 호출은 직렬화됩니다. 애플리케이션은 RpcSsDontSerializeContext 를 호출하여 이 기본 동작을 재정의할 수 있습니다. ACF 파일에서 [context_handle] 특성을 사용하면 호출 애플리케이션의 동작에 관계없이 이 특정 컨텍스트 핸들에 대한 호출이 직렬화되지 않습니다. 컨텍스트 런다운 루틴을 제공하는 것은 선택 사항입니다.
이 특성은 MIDL 버전 5.0에서 사용할 수 있습니다.
Windows Server 2003 및 Windows XP 이상: 단일 인터페이스는 직렬화된 컨텍스트 핸들과 비직렬화된 컨텍스트 핸들을 모두 수용할 수 있으므로 인터페이스의 한 메서드가 컨텍스트 핸들에 단독으로 액세스할 수 있도록 합니다(직렬화됨). 다른 메서드는 공유 모드에서 해당 컨텍스트 핸들에 액세스합니다(비직렬화됨). 이러한 액세스 기능은 읽기/쓰기 잠금 메커니즘과 비슷합니다. 직렬화된 컨텍스트 핸들을 사용하는 메서드는 단독 사용자(기록기)인 반면, 비직렬화 컨텍스트 핸들을 사용하는 메서드는 공유 사용자(판독기)입니다. 컨텍스트 핸들의 상태를 삭제하거나 수정하는 메서드는 serialize되어야 합니다. 컨텍스트 핸들에서 단순히 읽는 메서드와 같이 컨텍스트 핸들의 상태를 수정하지 않는 메서드는 비직렬화될 수 있습니다. 만들기 메서드는 암시적으로 직렬화됩니다.
예
typedef [context_handle_noserialize] PCONTEXT_HANDLE_TYPE;
HRESULT RemoteFunc([context_handle_noserialize] pCxHandle);
참고 항목