RpcNsMgmtBindingUnexportA 関数 (rpcnsi.h)

RpcNsMgmtBindingUnexport 関数は、name-service データベースのエントリから複数のバインド ハンドルとオブジェクトを削除します。

メモ この関数は、Windows Vista 以降のオペレーティング システムではサポートされていません。
 

構文

RPC_STATUS RpcNsMgmtBindingUnexportA(
  unsigned long EntryNameSyntax,
  RPC_CSTR      EntryName,
  RPC_IF_ID     *IfId,
  unsigned long VersOption,
  UUID_VECTOR   *ObjectUuidVec
);

パラメーター

EntryNameSyntax

EntryName の構文。

HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntaxレジストリ 値エントリで 指定された構文を使用するには、RPC_C_NS_SYNTAX_DEFAULTの値を指定します。

EntryName

バインド ハンドルとオブジェクト UUID を削除するエントリの名前へのポインター。

IfId

インターフェイス識別へのポインター。 null パラメーター値は、バインド ハンドルがエクスポート解除されないことを示します。オブジェクト UUID のみがエクスポート解除されます。

VersOption

IfId パラメーターによって指される構造体の VersMajor メンバーと VersMinor メンバーを RpcNsMgmtBindingUnexport 関数で使用する方法を指定します。

次の表では、 VersOption パラメーターの有効な値について説明します。

VersOption 値 意味
RPC_C_VERS_ALL
バージョン番号に関係なく、 IfId 内のインターフェイス UUID のすべてのバインドをエクスポート解除します。 この値には、 IfId のメジャー バージョンとマイナー バージョンの両方に 0 を指定します。
RPC_C_VERS_IF_ID
IfId 内の互換性のあるインターフェイス UUID のバインドを、同じメジャー バージョンと、 IfId のマイナー バージョン以上のマイナー バージョンでエクスポート解除 します
RPC_C_VERS_EXACT
IfId と同じメジャー バージョンとマイナー バージョンを持つ IfId のインターフェイス UUID のバインドをエクスポート解除します。
RPC_C_VERS_MAJOR_ONLY
IfId と同じメジャー バージョンを持つ IfId のインターフェイス UUID のバインドをエクスポート解除します (マイナー バージョンは無視されます)。 この値には、 IfId のマイナー バージョンに 0 を指定します。
RPC_C_VERS_UPTO
指定したインターフェイス UUID のバージョンが、指定したメジャー バージョンとマイナー バージョン以下のバージョンを提供するバインディングをエクスポート解除します。 (たとえば、 IfId に V2.0 が含まれており、名前 service-database エントリにバージョン 1.3、2.0、2.1 のバインド ハンドルが含まれている場合、 RpcNsMgmtBindingUnexport 関数は、バージョン 1.3 および 2.0 でバインド ハンドルのエクスポートを解除します。

ObjectUuidVec

サーバーが提供しなくなったオブジェクト UUID のベクターへのポインター。 このベクターは、アプリケーションによって構築されます。 null 値は、エクスポートを解除するオブジェクト UUID がないことを示します。バインド ハンドルのみがエクスポート解除されます。

戻り値

意味
RPC_S_OK
呼び出しは成功しました。
RPC_S_INVALID_VERS_OPTION
バージョン オプションが無効です。
RPC_S_INVALID_NAME_SYNTAX
名前の構文が無効です。
RPC_S_UNSUPPORTED_NAME_SYNTAX
名前の構文がサポートされていません。
RPC_S_INCOMPLETE_NAME
名前が不完全です。
RPC_S_ENTRY_NOT_FOUND
name-service エントリが見つかりませんでした。
RPC_S_NAME_SERVICE_UNAVAILABLE
名前サービスを利用できません。
RPC_S_INTERFACE_NOT_FOUND
インターフェイスが見つかりませんでした。
RPC_S_NOT_ALL_OBJS_UNEXPORTED
すべてのオブジェクトがエクスポートされていないわけではありません。
 
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

注釈

RpcNsMgmtBindingUnexport 関数を使用すると、管理アプリケーションは、name service-database エントリから次のいずれかを削除できます。

  • インターフェイスのバージョン番号 (メジャーとマイナー) で修飾された、指定されたインターフェイス UUID のすべてのバインド ハンドル
  • リソースの 1 つ以上のオブジェクト UUID
  • リソースのバインド ハンドルとオブジェクト UUID の両方
管理アプリケーションは、 RpcNsMgmtBindingUnexport の 1 回の呼び出しでインターフェイスとオブジェクトのエクスポートを解除することも、個別にエクスポート解除することもできます。 RpcNsMgmtBindingUnexport で指定されたインターフェイスのバインド ハンドルが見つからない場合、関数はRPC_S_INTERFACE_NOT_FOUND状態コードを返し、指定されている場合はオブジェクト UUID のエクスポートを解除しません。

指定したインターフェイスの 1 つ以上のバインド ハンドルが見つかり、エラーなしでエクスポートされていない場合、 RpcNsMgmtBindingUnexport は指定されたオブジェクト UUID のエクスポートを解除します。 指定したオブジェクト UUID のいずれかが見つからなかった場合、 RpcNsMgmtBindingUnexport はRPC_S_NOT_ALL_OBJS_UNEXPORTEDを返します。

管理アプリケーションでは、 RpcNsMgmtBindingUnexport の呼び出しに加えて、 RpcMgmtEpUnregister 関数を呼び出して、エンドポイント マップ データベースに登録されているサーバーの登録を解除する必要があります。

メモ 名前サービス データベースは、比較的安定するように設計されています。 レプリケートされたネーム サービスでは、 RpcNsBindingExport 関数と RpcNsBindingUnexport 関数を 頻繁に使用すると、name service によって同じエントリが繰り返し削除され、置き換えられ、パフォーマンスの問題が発生する可能性があります。
 

注意

rpcnsi.h ヘッダーは、RPCNsMgmtBindingUnexport をエイリアスとして定義します。これは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー rpcnsi.h (Rpc.h を含む)
Library Rpcns4.lib
[DLL] Rpcns4.dll

こちらもご覧ください

RpcMgmtEpUnregister

RpcNsBindingExport

RpcNsBindingUnexport