CancelSynchronousIo 関数

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

構文

BOOL WINAPI CancelSynchronousIo(
  _In_ HANDLE hThread
);

パラメーター

hThread[in]

スレッドへのハンドル。

戻り値

関数が成功すると、戻り値は 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) はい
SMB 3.0 とスケールアウト ファイル共有 (SO) はい
クラスター共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) はい

必要条件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header IoAPI.h (Windows.h を含む);
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista の WinBase.h (Windows.h を含む)
ライブラリ Kernel32.lib
[DLL] Kernel32.dll

関連項目

CancelIo

CancelIoEx

ファイル管理機能

同期および非同期 I/O