LPOVERLAPPED_COMPLETION_ROUTINE fungsi panggilan balik (minwinbase.h)

Fungsi panggilan balik yang ditentukan aplikasi yang digunakan dengan fungsi ReadFileEx dan WriteFileEx . Ini dipanggil ketika operasi input dan output asinkron (I/O) selesai atau dibatalkan dan utas panggilan dalam keadaan yang dapat diperingatkan (dengan menggunakan fungsi SleepEx, MsgWaitForMultipleObjectsEx, WaitForSingleObjectEx, atau WaitForMultipleObjectsEx dengan parameter fAlertable diatur ke TRUE).

Jenis LPOVERLAPPED_COMPLETION_ROUTINE menentukan penunjuk ke fungsi panggilan balik ini. FileIOCompletionRoutine adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi.

Sintaks

LPOVERLAPPED_COMPLETION_ROUTINE LpoverlappedCompletionRoutine;

void LpoverlappedCompletionRoutine(
  [in]      DWORD dwErrorCode,
  [in]      DWORD dwNumberOfBytesTransfered,
  [in, out] LPOVERLAPPED lpOverlapped
)
{...}

Parameter

[in] dwErrorCode

Status penyelesaian I/O. Parameter ini bisa menjadi salah satu kode kesalahan sistem.

[in] dwNumberOfBytesTransfered

Jumlah byte yang ditransfer. Jika terjadi kesalahan, parameter ini adalah nol.

[in, out] lpOverlapped

Penunjuk ke struktur TUMPANG TINDIH yang ditentukan oleh fungsi I/O asinkron.

Sistem tidak menggunakan struktur YANG TUMPANG TINDIH setelah rutinitas penyelesaian dipanggil, sehingga rutinitas penyelesaian dapat membatalkan alokasi memori yang digunakan oleh struktur yang tumpang tindih.

Mengembalikan nilai

Tidak ada

Keterangan

Nilai yang dikembalikan untuk operasi asinkron adalah 0 (ERROR_SUCCESS) jika operasi berhasil diselesaikan atau jika operasi selesai dengan peringatan. Untuk menentukan apakah operasi I/O berhasil diselesaikan, periksa apakah dwErrorCode adalah 0, panggil GetOverlappedResult, lalu panggil GetLastError. Misalnya, jika buffer tidak cukup besar untuk menerima semua data dari panggilan ke ReadFileEx, dwErrorCode diatur ke 0, GetOverlappedResult gagal, dan GetLastError mengembalikan ERROR_MORE_DATA.

Mengembalikan dari fungsi ini memungkinkan rutinitas penyelesaian I/O lain yang tertunda dipanggil. Semua rutinitas penyelesaian menunggu dipanggil sebelum penantian utas yang dapat diperingatkan selesai dengan kode pengembalian WAIT_IO_COMPLETION. Sistem dapat memanggil rutinitas penyelesaian tunggu dalam urutan apa pun. Mereka mungkin atau mungkin tidak dipanggil dalam urutan fungsi I/O selesai.

Setiap kali sistem memanggil rutinitas penyelesaian, sistem menggunakan beberapa tumpukan aplikasi. Jika rutinitas penyelesaian melakukan I/O asinkron tambahan dan tunggu yang dapat diperingatkan, tumpukan dapat tumbuh.

Untuk informasi selengkapnya, lihat Panggilan Prosedur Asinkron.

Contoh

Misalnya kode, lihat Server Pipa Bernama Menggunakan Rutinitas Penyelesaian.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header minwinbase.h (termasuk Windows.h)

Lihat juga

BindIoCompletionCallback

Fungsi Manajemen File

TUMPANG TINDIH

ReadFileEx

SleepEx

I/O Sinkron dan Asinkron

WaitForMultipleObjectsEx

WaitForSingleObjectEx

WriteFileEx