CancelIo 函式

取消所指定檔案呼叫執行緒所發出的所有擱置輸入和輸出 (I/O) 作業。 函式不會取消其他執行緒針對檔案控制代碼發出的 I/O 作業。

若要取消另一個執行緒的 I/O 作業,請使用 CancelIoEx 函 式。

語法

BOOL WINAPI CancelIo(
  _In_ HANDLE hFile
);

參數

hFile [in]

檔案的控制碼。

函式會取消此檔案控制代碼的所有擱置 I/O 作業。

傳回值

如果函式成功,則傳回非零的值。 已成功要求指定之檔案控制代碼之呼叫執行緒所發出之所有擱置 I/O 作業的取消作業。 執行緒可以使用 GetOverlappedResult 函式來判斷 I/O 作業本身何時完成。

如果函式失敗,傳回值為零, (0) 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError 函 式。

備註

如果指定的檔案控制代碼有任何擱置的 I/O 作業正在進行中,而且由呼叫執行緒發出, CancelIo 函式會取消它們。 CancelIo 只會取消控制碼上的未處理 I/O,它不會變更控制碼的狀態;這表示您無法依賴控制碼的狀態,因為您無法知道作業是否已順利完成或取消。

I/O 作業必須發出為重迭的 I/O。 如果不是,I/O 作業不會傳回以允許執行緒呼叫 CancelIo 函式。 使用未以FILE_FLAG_OVERLAPPED開啟的檔案控制碼呼叫CancelIo函式不會執行任何動作。

所有已取消且錯誤 ERROR_OPERATION_ABORTED完成的 I/O 作業,I/O 作業的所有完成通知都會正常發生。

在Windows 8和Windows Server 2012中,下列技術支援此函式。

技術 支援
伺服器訊息區 (SMB) 3.0 通訊協定
Yes
SMB 3.0 透明容錯移轉 (TFO)
Yes
具有向外延展檔案共用的 SMB 3.0 (SO)
Yes
叢集共用磁片區檔案系統 (CsvFS)
Yes
彈性檔案系統 (ReFS)
Yes

規格需求

需求
最低支援的用戶端
Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器
Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
標頭
IoAPI.h (包括 Windows.h) ;
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP (上的 WinBase.h 包含 Windows.h)
程式庫
Kernel32.lib
DLL
Kernel32.dll

另請參閱

CancelIoEx

CancelSynchronousIo

CreateFile

DeviceIoControl

檔案管理功能

LockFileEx

ReadDirectoryChangesW

ReadFile

ReadFileEx

同步和非同步 I/O

WriteFile

WriteFileEx