CancelSynchronousIo 関数 (ioapiset.h)

指定したスレッドによって発行された保留中の同期 I/O 操作を取り消し済みとしてマークします。

構文

BOOL CancelSynchronousIo(
  [in] HANDLE hThread
);

パラメーター

[in] hThread

スレッドへのハンドル。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合、戻り値は 0 (ゼロ) になります。 拡張エラー情報を取得するには、 GetLastError 関数を呼び出します。

この関数で取り消す要求が見つからない場合、戻り値は 0 (ゼロ) で、GetLastError はERROR_NOT_FOUNDを返します。

解説

呼び出し元には 、THREAD_TERMINATE アクセス権が必要です。

指定したスレッドに対して保留中の I/O 操作が進行中の場合、 CancelSynchronousIo 関数はそれらをキャンセルとしてマークします。 ほとんどの種類の操作はすぐに取り消すことができます。他の操作は、実際に取り消されて呼び出し元に通知される前に、完了に向けて続行できます。 CancelSynchronousIo 関数は、取り消されたすべての操作が完了するまで待機しません。 詳細については、「 保留中の I/O 操作の取り消し」を参照してください。

取り消される操作は、3 つの状態のいずれかで完了します。完了状態を確認するには、完了状態をチェックする必要があります。 3 つの状態は次のとおりです。

  • 操作は正常に完了しました。 これは、操作が取り消された場合でも発生する可能性があります。これは、操作を取り消すために取り消し要求が送信されなかった可能性があるためです。
  • 操作は取り消されました。 GetLastError 関数は、ERROR_OPERATION_ABORTEDを返します。
  • 操作が別のエラーで失敗しました。 GetLastError 関数は、関連するエラー コードを返します。
Windows 8 と Windows Server 2012 では、この関数は、次のテクノロジによってサポートされています。
テクノロジ サポートされています
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 Transparent Failover (TFO) はい
スケールアウト ファイル共有 (SO) を含む SMB 3.0 はい
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) はい

要件

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

関連項目

CancelIo

CancelIoEx

File Management 関数

同期および非同期 I/O