Bagikan melalui


Fungsi CancelIoEx

Menandai operasi I/O yang luar biasa untuk handel file yang ditentukan. Fungsi ini hanya membatalkan operasi I/O dalam proses saat ini, terlepas dari utas mana yang membuat operasi I/O.

Sintaks

BOOL WINAPI CancelIoEx(
  _In_     HANDLE       hFile,
  _In_opt_ LPOVERLAPPED lpOverlapped
);

Parameter

hFile [in]

Handel ke file.

lpOverlapped [in, opsional]

Penunjuk ke struktur data YANG TUMPANG TINDIH yang berisi data yang digunakan untuk I/O asinkron.

Jika parameter ini NULL, semua permintaan I/O untuk parameter hFile dibatalkan.

Jika parameter ini bukan NULL, hanya permintaan I/O tertentu yang dikeluarkan untuk file dengan struktur tumpang tindih lpOverlap yang ditentukan yang ditandai sebagai dibatalkan, yang berarti Anda dapat membatalkan satu atau beberapa permintaan, sementara fungsi CancelIo membatalkan semua permintaan yang beredar pada handel file.

Menampilkan nilai

Jika fungsi berhasil, nilai yang dikembalikan bukan nol. Operasi pembatalan untuk semua operasi I/O yang tertunda yang dikeluarkan oleh proses panggilan untuk handel file yang ditentukan berhasil diminta. Aplikasi tidak boleh membebaskan atau menggunakan kembali struktur TUMPANG TINDIH yang terkait dengan operasi I/O yang dibatalkan hingga selesai. Utas dapat menggunakan fungsi GetOverlappedResult untuk menentukan kapan operasi I/O itu sendiri telah selesai.

Jika fungsi gagal, nilai yang dikembalikan adalah 0 (nol). Untuk mendapatkan informasi kesalahan yang diperluas, panggil fungsi GetLastError .

Jika fungsi ini tidak dapat menemukan permintaan untuk dibatalkan, nilai yang dikembalikan adalah 0 (nol), dan GetLastError mengembalikan ERROR_NOT_FOUND.

Keterangan

Fungsi CancelIoEx memungkinkan Anda membatalkan permintaan di utas selain utas panggilan. Fungsi CancelIo hanya membatalkan permintaan dalam utas yang sama yang disebut fungsi CancelIo . CancelIoEx hanya membatalkan I/O yang beredar pada handel, itu tidak mengubah status handel; ini berarti Anda tidak dapat mengandalkan status handel karena Anda tidak dapat mengetahui apakah operasi berhasil diselesaikan atau dibatalkan.

Jika ada operasi I/O yang sedang berlangsung untuk handel file yang ditentukan, fungsi CancelIoEx menandainya untuk pembatalan. Sebagian besar jenis operasi dapat segera dibatalkan; operasi lain dapat terus menuju penyelesaian sebelum benar-benar dibatalkan dan pemanggil diberi tahu. Fungsi CancelIoEx tidak menunggu semua operasi yang dibatalkan selesai.

Jika handel file dikaitkan dengan port penyelesaian, paket penyelesaian I/O tidak diantrekan ke port jika operasi sinkron berhasil dibatalkan. Untuk operasi asinkron yang masih tertunda, operasi pembatalan akan mengantre paket penyelesaian I/O.

Operasi yang dibatalkan diselesaikan dengan salah satu dari tiga status; Anda harus memeriksa status penyelesaian untuk menentukan status penyelesaian. Tiga status tersebut adalah:

  • Operasi selesai secara normal. Ini dapat terjadi bahkan jika operasi dibatalkan, karena permintaan pembatalan mungkin belum diajukan tepat waktu untuk membatalkan operasi.
  • Operasi dibatalkan. Fungsi GetLastError mengembalikan ERROR_OPERATION_ABORTED.
  • Operasi gagal dengan kesalahan lain. Fungsi GetLastError mengembalikan kode kesalahan yang relevan.

Di Windows 8 dan Windows Server 2012, fungsi ini didukung oleh teknologi berikut.

Teknologi Didukung
Protokol Server Message Block (SMB) 3.0
Ya
SMB 3.0 Transparent Failover (TFO)
Ya
SMB 3.0 dengan Scale-out File Shares (SO)
Ya
Sistem File Volume Bersama Kluster (CsvFS)
Ya
Sistem File Tangguh (ReFS)
Ya

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung
Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Header
IoAPI.h (termasuk Windows.h);
WinBase.h pada Windows Server 2008 R2, Windows 7, Windows Server 2008 dan Windows Vista (termasuk Windows.h)
Pustaka
Kernel32.lib
DLL
Kernel32.dll

Lihat juga

CancelIo

CancelSynchronousIo

Membatalkan Operasi I/O Tertunda

Fungsi Manajemen File

I/O Sinkron dan Asinkron