Поделиться через


структура MIDL_STUB_DESC (rpcndr.h)

Структура MIDL_STUB_DESC — это структура, созданная MIDL, которая содержит сведения о заглушку интерфейса, касающуюся вызовов RPC между клиентом и сервером.

Синтаксис

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

Для необъектного интерфейса RPC на стороне сервера он указывает на структуру серверного интерфейса RPC. На стороне клиента он указывает на структуру клиентского интерфейса RPC. Для интерфейса объекта имеет значение NULL.

pfnAllocate

Функция выделения памяти, используемая заглушки. Задайте значение midl_user_allocate для необъектного интерфейса и NdrOleAllocate для интерфейса объекта.

pfnFree

Функция без памяти, используемая заглушка. Задайте значение 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_as и represent_as .

pFormatTypes

Указатель на описание формата типа.

fCheckBounds

Флаг, описывающий заданный пользователем параметр компилятора /error MIDL.

Version

Версия недоставки, необходимая для заглушки.

pMallocFreeStruct

Указатель на структуру MALLOC_FREE_STRUCT, которая содержит указатели функции выделения и свободной функции. Используйте , если указан атрибут MIDL enable_allocate .

MIDLVersion

Версия компилятора MIDL, используемого для компиляции IDL-файла.

CommFaultOffsets

Массив смещения стека для параметров с атрибутами comm_status или fault_status .

aUserMarshalQuadruple

Массив массива указателей функций для определяемых пользователем user_marshal и wire_marshal типов.

NotifyRoutineTable

Массив указателей функции уведомления для методов с указанным атрибутом notify или 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)