Fungsi NtCancelIoFileEx
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.
Catatan
Fungsi ini adalah mode pengguna yang setara dengan fungsi CancelIoEX Win32.
Sintaks
BOOL WINAPI NtCancelIoFileEx(
_In_ HANDLE hFile,
_In_opt_ LPOVERLAPPED lpOverlapped
);
Parameter
hFile [in]
Handel ke file.
lpOverlapped [in, opsional]
Penunjuk ke struktur data 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 Bahwa Anda dapat membatalkan satu atau beberapa permintaan, sementara fungsi NtCancelIoFile membatalkan semua permintaan yang beredar pada handel file.
Mengembalikan
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 NTCancelIoFileEx memungkinkan Anda membatalkan permintaan di utas selain utas panggilan. Fungsi NtCancelIoFile hanya membatalkan permintaan dalam utas yang sama yang disebut fungsi NtCancelIoFile . NtCancelIoFileEx 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 tertunda yang sedang berlangsung untuk handel file yang ditentukan, fungsi NtCancelIoFileEx 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 NtCancelIoFileEx 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 dikirimkan pada waktunya 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 Berbagi File Peluasan Skala (SO) |
Ya |
Sistem File Volume Bersama Kluster (CsvFS) |
Ya |
Sistem File Tangguh (ReFS) |
Ya |
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|