Struktur TUMPANG TINDIH (shobjidl.h)
Berisi informasi yang digunakan dalam input/output asinkron (tumpang tindih) (I/O).
Sintaks
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union {
struct {
DWORD Offset;
DWORD OffsetHigh;
};
PVOID Pointer;
};
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;
Anggota
Internal
Jenis: ULONG_PTR
Dicadangkan untuk penggunaan sistem operasi. Anggota ini, yang menentukan status tergantung sistem, valid ketika fungsi IStreamAsync::OverlappedResult kembali tanpa mengatur informasi kesalahan yang diperluas ke ERROR_IO_PENDING.
InternalHigh
Jenis: ULONG_PTR
Dicadangkan untuk penggunaan sistem operasi. Anggota ini, yang menentukan panjang data yang ditransfer, valid ketika fungsi IStreamAsync::OverlappedResult mengembalikan TRUE.
Offset
Jenis: DWORD
Posisi file untuk memulai transfer. Posisi file adalah offset byte dari awal file. Proses panggilan harus mengatur anggota ini sebelum memanggil fungsi IStreamAsync::ReadAsync atau IStreamAsync::WriteAsync .
OffsetHigh
Jenis: DWORD
Kata urutan tinggi dari posisi file untuk memulai transfer.
Pointer
Jenis: PVOID
Dicadangkan.
hEvent
Jenis: handel
Tangani ke peristiwa yang diatur ke status sinyal ketika operasi telah selesai. Proses panggilan harus mengatur anggota ini ke nol atau handel peristiwa yang valid sebelum memanggil fungsi yang tumpang tindih. Untuk membuat objek peristiwa, gunakan fungsi CreateEvent . Fungsi ini mengembalikan handel yang dapat digunakan untuk menyinkronkan permintaan I/O simultan untuk perangkat.
Fungsi seperti IStreamAsync::ReadAsync dan IStreamAsync::WriteAsync mengatur handel ini ke status tidak ditandatangani sebelum memulai operasi I/O. Ketika operasi telah selesai, handel diatur ke status sinyal.
Fungsi seperti IStreamAsync::OverlappedResult dan fungsi tunggu mengatur ulang peristiwa reset otomatis ke status tidak ditandatangani. Oleh karena itu, jika peristiwa reset otomatis digunakan, aplikasi dapat berhenti merespons jika menunggu operasi selesai dan kemudian memanggil IStreamAsync::OverlappedResult.
Keterangan
Struktur ini harus selalu diinisialisasi ke nol sebelum digunakan dalam panggilan fungsi. Jika tidak, fungsi dapat gagal dan mengembalikan ERROR_INVALID_PARAMETER.
Gunakan fungsi IStreamAsync::CancelIo untuk membatalkan operasi I/O asinkron.
Kesalahan umum adalah menggunakan kembali struktur yang TUMPANG TINDIH sebelum operasi asinkron sebelumnya selesai. Gunakan struktur terpisah untuk setiap permintaan. Buat objek peristiwa untuk setiap utas yang memproses data.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Header | shobjidl.h |