다음을 통해 공유


type_UserUnmarshal 함수

<형식>_UserUnmarshal 함수는 [wire_marshal] 및 [user_marshal] 특성에 대한 도우미 함수입니다. 스텁은 이 함수를 호출하여 클라이언트 또는 서버 쪽에서 데이터를 숨기지 않습니다. 함수는 다음과 같이 정의됩니다.

unsigned char __RPC_FAR * __RPC_USER  <type>_UserUnmarshal(
    unsigned long __RPC_FAR * pFlags,
    unsigned char __RPC_FAR * pBuffer,
    <type>  __RPC_FAR *       pMyObj);

함수 이름에><형식은 [wire_marshal] 또는 [user_marshal] 형식 정의에 지정된 userm-type을 의미합니다. 이 형식은 MIDL 컴파일러에 알 수 없는 [user_marshal] 특성과 함께 사용할 경우 전송할 수 없거나 짝수일 수 있습니다. 와이어 형식 이름(허용 가능한 형식의 이름)은 함수 프로토타입에서 사용되지 않습니다. 그러나 유선 유형은 OSF DCE에서 지정한 데이터에 대한 와이어 레이아웃을 정의합니다.

pFlags 매개 변수는 서명되지 않은 플래그 필드에 대한 포인터입니다. 플래그의 위쪽 단어에는 부동 소수점, 바이트 순서 및 문자 표현에 대해 OSF DCE에서 정의한 NDR 데이터 표현 플래그가 포함됩니다. 아래쪽 단어에는 COM 채널에서 정의한 대로 마샬링 컨텍스트 플래그가 포함됩니다. 필드 내의 플래그의 정확한 레이아웃은 type_UserSize 함수설명되어 있습니다.

pBuffer 매개 변수는 현재 버퍼 포인터입니다. 이 포인터는 항목에 맞춰지거나 정렬되지 않을 수 있습니다. <형식>_UserUnmarshal 함수는 버퍼 포인터를 적절하게 정렬하고, 데이터를 숨기지 않고, 숨기지 않은 개체 뒤의 첫 번째 바이트 주소인 새 버퍼 위치를 반환해야 합니다.

pMyObj 매개 변수는 사용자 정의 형식 개체에 대한 포인터입니다.

다른 유형의 환경에서 NDR 엔진은 <형식>_UserUnmarshal 함수를 호출하기 전에 필요한 모든 데이터 변환을 수행합니다. NDR 엔진은 이 사용자 데이터 형식에 대해 제공된 유선 형식 정의에 따라 이 데이터 변환을 수행합니다. 플래그는 보낸 사람의 데이터 표현을 나타냅니다.

user_marshal 및 wire_marshal 대한 마샬링 규칙

wire_marshal

user_marshal