RpcCancelThread 関数 (rpcdce.h)

RpcCancelThread 関数はスレッドを取り消します。 RpcCancelThread 関数を使用して非同期 RPC 呼び出しを取り消さないでください。代わりに、RpcAsyncCancelCall 関数を使用して非同期 RPC 呼び出しを取り消します。

構文

RPC_STATUS RpcCancelThread(
  void *Thread
);

パラメーター

Thread

取り消すスレッドのハンドル。

戻り値

説明
RPC_S_OK
呼び出しは成功しました。
RPC_S_ACCESS_DENIED
スレッド ハンドルには特権がありません。 関数を正しく実行するには、スレッド ハンドルにTHREAD_SET_CONTEXTが正しく設定されている必要があります。
RPC_S_CANNOT_SUPPORT
MS-DOS または Windows 3.x クライアントによって呼び出されます。
 
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

解説

RpcCancelThread 関数を使用すると、あるクライアント スレッドが別のクライアント スレッドで進行中の RPC を取り消すことができます。 関数が呼び出されると、サーバーの実行時に取り消し操作が通知されます。 サーバー スタブは、 RpcTestCancel を呼び出すことによって呼び出しが取り消されたかどうかを判断できます。 呼び出しが取り消された場合、サーバー スタブはクリーンし、クライアントに制御を返す必要があります。

RpcCancelThread 関数を使用して、静的コールバックを発行した呼び出しを取り消すことはできません。 IDL-file の [callback] 属性で宣言された関数を呼び出す可能性があるリモート プロシージャ呼び出しを取り消さないでください。

既定では、クライアントは、取り消し後にサーバーが制御を返すのを永続的に待機します。 この時間を短縮するには、 RpcMgmtSetCancelTimeout を呼び出し、応答を待機する秒数を指定します。 サーバーがこの期間内に戻らない場合、クライアントで呼び出しが失敗し、 RPC_S_CALL_FAILED 例外が発生します。 サーバー スタブは引き続き実行されます。

名前付きパイプ プロトコル ( ncacn_np) を使用している場合は、有限のタイムアウトを指定する必要があります。

RpcCancelThread は、任意の接続指向プロトコル (ncacn_*) と、ncadg_mqncalrpc を除く任意のデータグラム プロトコルで使用できます。

メモ Windows XP/2000 RpcCancelThread 関数は 、ncacn_httpでは使用できません。 RpcCancelThread 関数は、Windows Server 2003 以降のオペレーティング システムおよび Service Pack 1 (SP1) 以降の Windows XP でのncacn_httpをサポートしています。

要件

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

関連項目

RpcTestCancel

ncacn_http

ncadg_mq

ncalrpc