Fungsi BindIoCompletionCallback (winbase.h)
Mengaitkan port penyelesaian I/O yang dimiliki oleh kumpulan utas dengan handel file yang ditentukan. Setelah menyelesaikan permintaan I/O yang melibatkan file ini, utas pekerja non-I/O akan menjalankan fungsi panggilan balik yang ditentukan.
Sintaks
BOOL BindIoCompletionCallback(
[in] HANDLE FileHandle,
[in] LPOVERLAPPED_COMPLETION_ROUTINE Function,
[in] ULONG Flags
);
Parameter
[in] FileHandle
Handel ke file yang dibuka untuk penyelesaian I/O yang tumpang tindih. Handel ini dikembalikan oleh fungsi CreateFile , dengan bendera FILE_FLAG_OVERLAPPED .
[in] Function
Penunjuk ke fungsi panggilan balik yang akan dijalankan dalam utas pekerja non-I/O saat operasi I/O selesai. Fungsi panggilan balik ini tidak boleh memanggil fungsi TerminateThread .
Untuk informasi selengkapnya tentang rutinitas penyelesaian, lihat FileIOCompletionRoutine.
[in] Flags
Parameter ini harus nol.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, panggil fungsi GetLastError .
Keterangan
Fungsi panggilan balik mungkin tidak dijalankan jika proses mengeluarkan permintaan asinkron pada file yang ditentukan oleh parameter FileHandle tetapi permintaan segera kembali dengan kode kesalahan selain ERROR_IO_PENDING.
Pastikan bahwa utas yang memulai permintaan I/O asinkron tidak berakhir sebelum permintaan selesai. Selain itu, jika fungsi dalam DLL diantrekan ke utas pekerja, pastikan bahwa fungsi di DLL telah menyelesaikan eksekusi sebelum DLL dibongkar.
Kumpulan utas mempertahankan port penyelesaian I/O. Saat Anda memanggil BindIoCompletionCallback, ini mengaitkan file yang ditentukan dengan port penyelesaian I/O kumpulan utas. Permintaan asinkron pada objek file tersebut akan selesai dengan memposting ke port penyelesaian, di mana permintaan tersebut akan diambil oleh utas pekerja kumpulan utas. Untuk panggilan balik yang harus mengeluarkan permintaan I/O yang selesai sebagai panggilan prosedur asinkron, kumpulan utas menyediakan kumpulan pekerja I/O. Utas pekerja I/O tidak menunggu pada port penyelesaian; mereka tidur dalam keadaan tunggu yang dapat diperingatkan sehingga paket permintaan I/O yang selesai dapat membangunkannya. Kedua jenis utas pekerja memeriksa apakah ada I/O yang tertunda pada mereka dan jika ada, mereka tidak keluar. Untuk informasi selengkapnya, lihat Panggilan Prosedur Asinkron.
Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan _WIN32_WINNT sebagai 0x0500 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.
Persyaratan
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winbase.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk