Bagikan melalui


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