RPC_INTERFACE_TEMPLATEA構造体 (rpcdce.h)
RPC_INTERFACE_TEMPLATE 構造体は、RPC インターフェイス グループ サーバー インターフェイスを定義します。
構文
typedef struct {
unsigned long Version;
RPC_IF_HANDLE IfSpec;
UUID *MgrTypeUuid;
RPC_MGR_EPV *MgrEpv;
unsigned int Flags;
unsigned int MaxCalls;
unsigned int MaxRpcSize;
RPC_IF_CALLBACK_FN *IfCallback;
UUID_VECTOR *UuidVector;
RPC_CSTR Annotation;
void *SecurityDescriptor;
} RPC_INTERFACE_TEMPLATEA, *PRPC_INTERFACE_TEMPLATEA;
メンバーズ
Version
このフィールドは予約済みであり、0 に設定する必要があります。
IfSpec
登録するインターフェイスを定義する MIDL によって生成される構造体。
MgrTypeUuid
MgrEpvに関連付ける UUID へのポインター。 NULL または nil
MgrEpv
マネージャー ルーチンのエントリ ポイント ベクトル (EPV) を含む RPC_MGR_EPV 構造体へのポインター。 NULL
Flags
フラグ。 フラグ値の一覧については、「インターフェイス登録フラグの」を参照してください。 インターフェイス グループ インターフェイスは、常に自動リッスン
MaxCalls
サーバーがこのインターフェイスで受け入れることができる同時リモート プロシージャ コール要求の最大数。 RPC ランタイム ライブラリは、maxCallsで指定された呼び出しの数よりも多くの同時呼び出し要求がサーバーで許可されないように、ベスト エフォート
他のインターフェイスでの呼び出しは、RpcServerListenで指定されたプロセス全体
同時呼び出しの数が問題にならない場合は、RPC_C_LISTEN_MAX_CALLS_DEFAULTを使用して既定値を指定することで、サーバー側のパフォーマンスを若干向上させることができます。 これにより、RPC ランタイム環境で不要な制限が適用されなくなります。
MaxRpcSize
受信データ ブロックの最大サイズ (バイト単位)。 MaxRpcSize
IfCallback
UuidVector
RPC エンドポイント マッパーに登録 サーバーによって提供される UUID
Annotation
ローカル エンドポイント マップ データベースに追加された各製品間要素に適用される文字列コメントへのポインター。 文字列は、null 終端文字を含め、最大 64 文字まで指定できます。 注釈文字列がない場合は、null 値または null で終わる文字列 ("\0") を指定します。
注釈文字列は、情報のためだけにアプリケーションによって使用されます。 RPC は、クライアントが通信するサーバー インスタンスを特定したり、エンドポイント マップ データベース内の要素を列挙したりするために、この文字列を使用しません。
SecurityDescriptor
インターフェイスにアクセスする権限を持つクライアントを記述するオプションのセキュリティ記述子。
備考
インターフェイスを登録するために、サーバーは次の情報を提供します。
- インターフェイス仕様 インターフェイス仕様は、MIDL コンパイラによって生成されるデータ構造です。
- マネージャー
UUID とマネージャー EPV マネージャーの種類は UUIDし、マネージャー EPV は、サーバーがクライアントからリモート プロシージャ コール要求を受信したときに実行されるマネージャー ルーチンを決定します。 サーバーによって提供されるインターフェイスの実装ごとに、個別のマネージャー EPV を登録する必要があります。 非 nil のマネージャー型 UUID を指定する場合、サーバーは rpcObjectSetType呼び出して、この nil 以外の型のオブジェクトを登録する必要があることに注意してください。
すべてのインターフェイス グループ インターフェイスは、自動リッスン
IfCallback でセキュリティ コールバック関数を指定すると、サーバー アプリケーションは個々のクライアントベースでインターフェイスへのアクセスを制限できます。 つまり、既定では、セキュリティは省略可能です。サーバーランタイムは、サーバーが RpcServerRegisterAuthInfo
サーバー アプリケーションが ifCallbackでインターフェイスのセキュリティ コールバック関数
コールバック関数のシグネチャについては、RPC_IF_CALLBACK_FNを参照してください。
IfCallback のコールバック関数は、クライアントがこのインターフェイスでメソッドを呼び出す RPC_S_OK を返す必要があります。 その他のリターン コードを使用すると、クライアントは例外 RPC_S_ACCESS_DENIEDを受け取ります。
場合によっては、RPC ランタイムは、クライアントごとに、インターフェイスごとに複数回セキュリティ コールバック関数を呼び出す場合があります。 コールバック関数は、この可能性を処理できる必要があります。
手記
rpcdce.h ヘッダーは、unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとしてRPC_INTERFACE_TEMPLATEを定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2012 [デスクトップ アプリのみ] |
ヘッダー | rpcdce.h (Rpc.h を含む) |
関連項目
RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN
RpcServerInqBindings の
RpcServerInterfaceGroupActivate
RpcServerInterfaceGroupClose の
RpcServerInterfaceGroupDeactivate の