RpcServerUnsubscribeForNotification 関数 (rpcasync.h)
RpcServerUnsubscribeForNotification 関数は、RPC 通知からサーバーをサブスクライブ解除します。
構文
RPC_STATUS RpcServerUnsubscribeForNotification(
[in] RPC_BINDING_HANDLE Binding,
[in] RPC_NOTIFICATIONS Notification,
[out] unsigned long *NotificationsQueued
);
パラメーター
[in] Binding
RPC_BINDING_HANDLERpcServerSubscribeForNotification の前の呼び出しで指定された現在の RPC 呼び出しのバインド ハンドルを含む構造体です。 RPC が呼び出しをディスパッチしたのと同じスレッドでこの関数が呼び出された場合、このパラメーターを NULL に設定できます。それ以外の場合は、明示的なバインド ハンドルをこのパラメーターで渡す必要があります。
[in] Notification
サーバーによって RPC から要求される通知の種類を指定する 、RPC_NOTIFICATIONS 列挙の値。 通知は個別に登録解除する必要があります。複数の値はサポートされていません。
Windows Vista: 現時点では、 RpcNotificationClientDisconnect と RpcNotificationCallCancel のみがサポートされています。 このパラメーターに他の値が指定されている場合は、RPC_S_CANNOT_SUPPORTエラー コードが返されます。
[out] NotificationsQueued
指定した RPC 呼び出しに対して RPC ランタイムがキューに登録した通知の数を受け取る値への必要なポインター。 ポインターを指定する必要があります。これは省略可能ではありません。
コードでは、受信した通知の数を追跡する必要があります。 RPC 通知の登録を解除するときに、RPC ランタイムがキューに登録した通知の数が、受信した通知の数と一致するかどうかをチェックする必要があります。 数値が一致しない場合でも、別のスレッドで一部の通知が受信される可能性があります。 すべての受信通知を受信するまで、通知状態のクリーンアップを遅らせる必要があります。
戻り値
この関数は、成功したRPC_S_OKを返します。それ以外の場合は、RPC_S_* エラー コードが返されます。
注釈
RpcServerUnsubscribeForNotification は、関連付けられた RPC 呼び出しに対して RpcServerSubscribeForNotification が呼び出された RPC バインディング ハンドルごとに呼び出す必要があります。 関連付けられた RPC 呼び出しが完了する前に、この API を呼び出す必要があります。それ以外の場合、結果は未定義であり、アプリケーションが不安定になる可能性があります。
この API が返された後、未トリガーの通知を取得できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista、WINDOWS XP と SP2 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008、Windows Server 2003 SP1 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | rpcasync.h (Rpc.h を含む) |
Library | Rpcrt4.lib |
[DLL] | Rpcrt4.dll |