Bagikan melalui


Metode IWDFDevice::P ostEvent (wudfddi.h)

[Peringatan: UMDF 2 adalah versi terbaru UMDF dan pengganti UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2. Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.]

Metode PostEvent secara asinkron memberi tahu aplikasi yang menunggu peristiwa yang ditentukan dari driver.

Sintaks

HRESULT PostEvent(
  [in] REFGUID        EventGuid,
  [in] WDF_EVENT_TYPE EventType,
  [in] BYTE           *pbData,
  [in] DWORD          cbDataSize
);

Parameter

[in] EventGuid

GUID untuk peristiwa tersebut. GUID ditentukan oleh aplikasi dan driver dan buram untuk kerangka kerja.

[in] EventType

Nilai jenis WDF_EVENT_TYPE yang mengidentifikasi jenis peristiwa. Dalam versi UMDF saat ini, driver harus mengatur EventType ke WdfEventBroadcast (1). WdfEventBroadcast menunjukkan bahwa acara disiarkan. Aplikasi dapat berlangganan peristiwa jenis WdfEventBroadcast. Untuk menerima peristiwa siaran, aplikasi harus mendaftar untuk pemberitahuan melalui fungsi Microsoft Win32 RegisterDeviceNotification . Peristiwa jenis WdfEventBroadcast diekspos sebagai peristiwa jenis DBT_CUSTOMEVENT ke aplikasi.

[in] pbData

Penunjuk ke buffer yang berisi data yang terkait dengan peristiwa. NULL adalah nilai yang valid.

[in] cbDataSize

Ukuran, dalam byte, data yang dituju pbData . Nol adalah nilai ukuran yang valid jika pbData diatur ke NULL.

Ukuran maksimum data peristiwa sedikit kurang dari MAXUSHORT (64 KB). Batas atas yang tepat adalah (0xFFFF - FIELD_OFFSET(TARGET_DEVICE_CUSTOM_NOTIFICATION, CustomDataBuffer)).

Nilai kembali

PostEvent mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
S_OK
Data peristiwa berhasil dikirim ke sistem operasi.
HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY)
Ukuran data yang ditentukan parameter cbDataSize lebih besar dari ukuran maksimum yang diizinkan.
E_INVALIDARG
Parameter EventType tidak diatur ke WdfEventBroadcast (1).
E_OUTOFMEMORY

PostEvent tidak dapat mengalokasikan memori yang diperlukan untuk menyelesaikannya.

 

PostEvent mungkin juga mengembalikan nilai HRESULT lainnya.

Keterangan

Ketika driver memanggil IWDFDevice::P ostEvent untuk memberi tahu aplikasi yang meminta tentang suatu peristiwa, UMDF mengirimkan peristiwa ke sistem operasi. Sistem operasi mengirimkan peristiwa ke aplikasi yang meminta dalam operasi asinkron. Jika sistem operasi awalnya tidak mengembalikan kesalahan, driver tidak menerima kesalahan (S_OK). Namun, nantinya, jika sistem operasi menerima kesalahan saat mencoba mengirimkan peristiwa (mungkin karena kondisi memori yang rendah), sistem operasi tidak dapat memberi tahu driver tentang kesalahan tersebut. Karena sifat asinkron dari pemberitahuan peristiwa ini, pengiriman peristiwa ke aplikasi yang meminta tidak dijamin. Jika informasi peristiwa hilang dalam perjalanan hingga aplikasi yang meminta, aplikasi harus dapat pulih dari peristiwa yang hilang.

Untuk informasi tentang membuat peristiwa perangkat, lihat Menggunakan Antarmuka Perangkat di Driver UMDF.

Persyaratan

Persyaratan Nilai
Akhir dukungan Tidak tersedia di UMDF 2.0 dan yang lebih baru.
Target Platform Desktop
Versi UMDF minimum 1,5
Header wudfddi.h (termasuk Wudfddi.h)
DLL WUDFx.dll

Lihat juga

FIELD_OFFSET

IWDFDevice

TARGET_DEVICE_CUSTOM_NOTIFICATION

WdfDevicePostEvent