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 |
|
Pustaka |
|
DLL |
|