次の方法で共有


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 の呼び出しを発行することはできません)。