다음을 통해 공유


MIDL_STUB_DESC 구조체(rpcndr.h)

MIDL_STUB_DESC 구조체는 클라이언트와 서버 간의 RPC 호출과 관련된 인터페이스 스텁에 대한 정보를 포함하는 MIDL 생성 구조체입니다.

구문

typedef struct _MIDL_STUB_DESC {
  void                                 *RpcInterfaceInformation;
  void * )(size_t)                                 *(pfnAllocate;
  void()(void *)                                * pfnFree;
  union {
    handle_t              *pAutoHandle;
    handle_t              *pPrimitiveHandle;
    PGENERIC_BINDING_INFO pGenericBindingInfo;
  } IMPLICIT_HANDLE_INFO;
  const NDR_RUNDOWN                    *apfnNdrRundownRoutines;
  const GENERIC_BINDING_ROUTINE_PAIR   *aGenericBindingRoutinePairs;
  const EXPR_EVAL                      *apfnExprEval;
  const XMIT_ROUTINE_QUINTUPLE         *aXmitQuintuple;
  const unsigned char                  *pFormatTypes;
  int                                  fCheckBounds;
  unsigned long                        Version;
  MALLOC_FREE_STRUCT                   *pMallocFreeStruct;
  long                                 MIDLVersion;
  const COMM_FAULT_OFFSETS             *CommFaultOffsets;
  const USER_MARSHAL_ROUTINE_QUADRUPLE *aUserMarshalQuadruple;
  const NDR_NOTIFY_ROUTINE             *NotifyRoutineTable;
  ULONG_PTR                            mFlags;
  const NDR_CS_ROUTINES                *CsRoutineTables;
  void                                 *ProxyServerInfo;
  const NDR_EXPR_DESC                  *pExprInfo;
} MIDL_STUB_DESC;

멤버

RpcInterfaceInformation

서버 쪽의 nonobject RPC 인터페이스의 경우 RPC 서버 인터페이스 구조를 가리킵니다. 클라이언트 쪽에서 RPC 클라이언트 인터페이스 구조를 가리킵니다. 개체 인터페이스의 경우 null입니다.

pfnAllocate

스텁에서 사용할 메모리 할당 함수입니다. nonobject 인터페이스의 경우 midl_user_allocate , 개체 인터페이스의 경우 NdrOleAllocate 로 설정합니다.

pfnFree

스텁에서 사용할 메모리 없는 함수입니다. nonobject 인터페이스의 경우 midl_user_free , 개체 인터페이스의 경우 NdrOleFree 로 설정합니다.

IMPLICIT_HANDLE_INFO

공용 구조체에는 다음 핸들 중 하나가 포함됩니다.

IMPLICIT_HANDLE_INFO.pAutoHandle

RPC 호출에 대한 암시적 자동 핸들에 대한 포인터입니다.

IMPLICIT_HANDLE_INFO.pPrimitiveHandle

RPC 호출에 대한 암시적 기본 핸들에 대한 포인터입니다.

IMPLICIT_HANDLE_INFO.pGenericBindingInfo

암시적 제네릭 핸들에 대한 정보에 대한 포인터입니다.

apfnNdrRundownRoutines

컨텍스트 핸들 런다운 함수의 배열입니다.

aGenericBindingRoutinePairs

암시적 제네릭 핸들에 대한 바인딩 및 바인딩 해제 함수 쌍에 대한 함수 포인터의 배열입니다.

apfnExprEval

MIDL 복합 규칙 및 다양한 설명을 평가하는 데 사용되는 식 계산기 함수에 대한 함수 포인터의 배열입니다. 예를 들어 size_is(param1 + param2)입니다.

aXmitQuintuple

사용자 정의 transmit_asrepresent_as 형식에 대한 함수 포인터 배열의 배열입니다.

pFormatTypes

형식 형식 설명에 대한 포인터입니다.

fCheckBounds

사용자 지정 /error MIDL 컴파일러 옵션을 설명하는 플래그입니다.

Version

스텁에 필요한 NDR 버전입니다.

pMallocFreeStruct

할당 및 사용 가능한 함수 포인터를 포함하는 MALLOC_FREE_STRUCT 구조체에 대한 포인터입니다. enable_allocate MIDL 특성이 지정된 경우 를 사용합니다.

MIDLVersion

.idl 파일을 컴파일하는 데 사용되는 MIDL 컴파일러의 버전입니다.

CommFaultOffsets

comm_status 또는 fault_status 특성이 있는 매개 변수에 대한 스택 오프셋 배열입니다.

aUserMarshalQuadruple

사용자 정의 user_marshal wire_marshal 형식에 대한 함수 포인터 배열의 배열입니다.

NotifyRoutineTable

알림 또는 notify_flag 특성이 지정된 메서드에 대한 알림 함수 포인터의 배열입니다.

mFlags

스텁의 특성을 설명하는 플래그

의미
RPCFLG_HAS_MULTI_SYNTAXES
스텁이 여러 전송 구문을 지원하는지 설정합니다.
RPCFLG_HAS_CALLBACK
인터페이스에 콜백 함수가 포함되어 있으면 를 설정합니다.
RPC_INTERFACE_HAS_PIPES
인터페이스에 파이프를 사용하는 메서드가 포함되어 있으면 설정합니다.

CsRoutineTables

사용되지 않습니다.

ProxyServerInfo

pExprInfo

요구 사항

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