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

サーバー側の非オブジェクト 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

スタブに必要な NDR バージョン。

pMallocFreeStruct

allocate および free 関数ポインターを含むMALLOC_FREE_STRUCT構造体へのポインター。 enable_allocate MIDL 属性が指定されている場合は、 を使用します。

MIDLVersion

.idl ファイルのコンパイルに使用される MIDL コンパイラのバージョン。

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 [デスクトップ アプリのみ]
Header rpcndr.h (Rpc.h を含む)