次の方法で共有


WinAPPCCancelAsyncRequest

WinAPPCCancelAsyncRequest 関数は、未処理の WinAsyncAPPC ベースの要求を取り消します。

構文

  
    int WINAPI WinAPPCCancelAsyncRequest(   
HANDLE hAsyncTaskID);  

パラメーター

hAsyncTaskID
指定されたパラメーター。 取り消す非同期タスクを指定します。

戻り値

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

WAPPCINVALID
指定した非同期タスク識別子が無効であることを示すエラー コード。

WAPPCALREADY
取り消される非同期ルーチンが既に完了していることを示すエラー コード。

注釈

WinAsyncAPPC、WinAsyncAPPCEx、または WinAsyncAPPCIOCP 関数のいずれかを発行して開始した非同期タスクは、WinAPPCCCancelAsyncRequest 関数を発行して、hAsyncTaskID の初期関数によって返される非同期タスク識別子を指定することで、完了前に取り消すことができます。

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

既存の非同期 WinAsyncAPPC ルーチンを取り消そうとしたときに、WAPPCALREADY のエラー コードで失敗した場合、2 つのうち 1 つが発生しました。 元のルーチンが既に完了し、アプリケーションが結果のメッセージを処理したか、元のルーチンが既に完了しており、結果のメッセージがアプリケーション ウィンドウ キューで待機しています。