次の方法で共有


WinAPPCCancelBlockingCall

WinAPPCCancelBlockingCall 関数は、スレッドの未処理のブロック操作を取り消します。 未処理のブロックされた呼び出しが取り消されると、WAPPCCANCEL のエラー コードが生成されます。

構文

  
BOOL WINAPI WinAPPCCancelBlockingCall(  
void  
);  
  

戻り値

戻り値は、取り消し要求が成功したかどうかを指定します。 値が 0 の場合、要求は取り消されました。 それ以外の場合、値は次のようになります。

WAPPCINVALID
未処理のブロッキング呼び出しがないことを示すエラー コード。

注釈

未処理の動詞が会話 ( SEND_DATARECEIVE_AND_WAITなど) に関連している場合、動詞は消去され、セッションは閉じられます。 動詞が TP に関連する場合 ( RECEIVE_ALLOCATETP_STARTEDなど)、TP は終了します。 どちらの場合も、実装では可能な限りクリーンに会話とセッションがダウンしますが、送信バッファーをフラッシュしたり、確認を待機したりすることはありません。 この呼び出しは同期的であり、上記の処理が完了すると、関数が終了します。

Microsoft Windows では、マルチスレッド アプリケーションで複数のブロック操作を未処理にすることができますが、スレッドごとに 1 つだけです。 複数の未処理の呼び出しを区別するために、 WinAPPCCancelBlockingCall は、現在のアプリケーション スレッド (存在する場合は呼び出し元) の未処理の操作を取り消します。それ以外の場合は失敗します。 Windows の既定では、Windows APPC は、操作が未処理の間に呼び出し元のアプリケーション スレッドを中断します。 その結果、ブロック操作が開始されたスレッドは、WinAPPCSetBlockingHook を使用してスレッドに対してブロック フックが登録されていない限り、制御を回復しません (したがって、 WinAPPCCancelBlockingCall の呼び出し 発行できません)。