RpcNsBindingImportNext 関数 (rpcnsi.h)
RpcNsBindingImportNext 関数は、インターフェイス (および必要に応じてネーム サービス データベースのオブジェクト) を検索し、互換性のあるサーバーのバインド ハンドルが見つかった場合に返します。
構文
RPC_STATUS RpcNsBindingImportNext(
RPC_NS_HANDLE ImportContext,
RPC_BINDING_HANDLE *Binding
);
パラメーター
ImportContext
RpcNsBindingImportBegin 関数から返される名前サービス ハンドル。
Binding
サーバーのクライアント互換サーバー バインド ハンドルへのポインターを返します。
戻り値
値 | 説明 |
---|---|
|
呼び出しは成功しました。 |
|
これ以上のバインドはありません。 |
|
名前サービスを利用できません。 |
解説
RpcNsBindingImportNext 関数は、RpcNsBindingImportBegin 関数の IfSpec パラメーターと ObjUuid パラメーターで指定されたインターフェイスとオブジェクト UUID を提供するサーバーに対して、クライアント互換のサーバー バインド ハンドルを 1 つ返します。 関数は、サーバーと直接ではなく、ネーム サービス データベースとのみ通信します。
Windows 2000 で有効な RPC 環境では、Active Directory を名前サービス データベースとして使用し、ランタイム環境が検索を実行する順序は次のとおりです。
- ローカル キャッシュで検索します。 エントリがない場合は、
- Active Directory を検索します。 エントリがない場合は、
- ドメイン内の他のすべてのディレクトリ サービスにブロードキャスト要求を送信します。
エントリが Active Directory に存在するが、エントリに関連付けられている情報がない場合、実行時環境ではこのブロードキャスト要求は発行されないことに注意してください。
- サーバーがオブジェクト UUID をエクスポートしなかった場合、返されるバインド ハンドルには nil オブジェクト UUID が含まれます。
- サーバーが 1 つのオブジェクト UUID をエクスポートした場合、返されるバインド ハンドルにはそのオブジェクト UUID が含まれます。
- サーバーが複数のオブジェクト UUID をエクスポートした場合、返されるバインド ハンドルにはオブジェクト UUID のいずれかが含まれます。 次のインポート操作では、返されたオブジェクト UUID を非決定的な方法で選択します。 その結果、1 つのサーバー エントリから互換性のあるバインド ハンドルごとに異なるオブジェクト UUID を返すことができます。
クライアントが RpcNsBindingImportNext を呼び出すたびに、関数は別のサーバー バインド ハンドルを返します。 返されるバインド ハンドルは順序付けされません。 クライアント アプリケーションは 、RpcNsBindingInqEntryName 関数を 呼び出して、バインド ハンドルの取得元のエントリ名に name-service データベースを取得します。検索が name-service データベースの末尾に達すると、 RpcNsBindingInqEntryName はRPC_S_NO_MORE_BINDINGSの状態を返し、バインド パラメーター値 NULL を返します。
RpcNsBindingImportNext 関数は、返された Binding パラメーターによって参照されるデータにストレージを割り当てます。 クライアント アプリケーションがバインド ハンドルを使用して終了したら、 RpcBindingFree を呼び出してストレージの割り当てを解除する必要があります。 RpcNsBindingImportNext の各呼び出しには、RpcBindingFree への対応する呼び出しが必要です。
クライアントは、インポート コンテキストを削除する RpcNsBindingImportDone 関数を呼び出す役割を担います。 また、クライアントは RpcNsBindingImportDone を呼び出してから RpcNsBindingImportBegin を呼び出して、互換性のあるサーバーの新しい検索を開始します。 返されるバインド ハンドルの順序は新しい検索ごとに異なるため、アプリケーションが実行されるたびにバインド ハンドルがアプリケーションに返される順序が異なる場合があります。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | rpcnsi.h (Rpc.h を含む) |
Library | Rpcns4.lib |
[DLL] | Rpcns4.dll |