Bagikan melalui


Fungsi GetOverlappedResult (ioapiset.h)

Mengambil hasil operasi yang tumpang tindih pada file yang ditentukan, pipa bernama, atau perangkat komunikasi. Untuk menentukan interval batas waktu atau menunggu utas yang dapat diperingatkan, gunakan GetOverlappedResultEx.

Sintaks

BOOL GetOverlappedResult(
  [in]  HANDLE       hFile,
  [in]  LPOVERLAPPED lpOverlapped,
  [out] LPDWORD      lpNumberOfBytesTransferred,
  [in]  BOOL         bWait
);

Parameter

[in] hFile

Handel ke file, pipa bernama, atau perangkat komunikasi. Ini adalah handel yang sama yang ditentukan ketika operasi yang tumpang tindih dimulai oleh panggilan ke salah satu fungsi berikut:

[in] lpOverlapped

Penunjuk ke struktur TUMPANG TINDIH yang ditentukan ketika operasi yang tumpang tindih dimulai.

[out] lpNumberOfBytesTransferred

Penunjuk ke variabel yang menerima jumlah byte yang benar-benar ditransfer oleh operasi baca atau tulis. Untuk operasi TransactNamedPipe , ini adalah jumlah byte yang dibaca dari pipa. Untuk operasi DeviceIoControl , ini adalah jumlah byte data output yang dikembalikan oleh driver perangkat. Untuk operasi ConnectNamedPipe atau WaitCommEvent , nilai ini tidak ditentukan.

[in] bWait

Jika parameter ini TRUE, dan anggota Internal dari struktur lpOverlappedSTATUS_PENDING, fungsi tidak akan kembali hingga operasi selesai. Jika parameter ini FALSE dan operasi masih tertunda, fungsi mengembalikan FALSE dan fungsi GetLastError mengembalikan ERROR_IO_INCOMPLETE.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Hasil yang dilaporkan oleh fungsi GetOverlappedResult adalah hasil dari operasi tumpang tindih terakhir handel yang ditentukan tempat struktur TUMPANG TINDIH yang ditentukan disediakan, dan yang hasil operasinya tertunda. Operasi yang tertunda ditunjukkan ketika fungsi yang memulai operasi mengembalikan FALSE, dan fungsi GetLastError mengembalikan ERROR_IO_PENDING. Ketika operasi I/O tertunda, fungsi yang memulai operasi mereset anggota hEvent dari struktur TUMPANG TINDIH ke status tidak bertanda. Kemudian ketika operasi yang tertunda telah selesai, sistem mengatur objek peristiwa ke status tersinyal.

Jika parameter bWaitTRUE, GetOverlappedResult menentukan apakah operasi yang tertunda telah selesai dengan menunggu objek peristiwa berada dalam status disinyalir.

Jika anggota hEvent dari struktur TUMPANG TINDIH ADALAH NULL, sistem menggunakan status handel hFile untuk memberi sinyal ketika operasi telah selesai. Penggunaan file, pipa bernama, atau handel perangkat komunikasi untuk tujuan ini tidak disarankan. Lebih aman untuk menggunakan objek peristiwa karena kebingungan yang dapat terjadi ketika beberapa operasi tumpang tindih bersamaan dilakukan pada file yang sama, pipa bernama, atau perangkat komunikasi. Dalam situasi ini, tidak ada cara untuk mengetahui operasi mana yang menyebabkan status objek diberi sinyal.

Contoh

Untuk contoh yang menggunakan GetOverlappedResult, lihat Pengujian untuk Akhir File

Persyaratan

   
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header ioapiset.h (termasuk Windows.h pada Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

CancelIo, CreateEvent, GetOverlappedResultEx, TUMPANG TINDIH, Input dan Output Tumpang Tindih, Fungsi Sinkronisasi