Fungsi KsGenerateEvents (ks.h)

Fungsi KsGenerateEvents menghasilkan peristiwa dari jenis yang ditunjukkan yang ada dalam daftar peristiwa Objek.

Sintaks

void KsGenerateEvents(
  [in]           PVOID                      Object,
  [in, optional] const GUID                 *EventSet,
  [in]           ULONG                      EventId,
  [in]           ULONG                      DataSize,
  [in, optional] PVOID                      Data,
  [in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
  [in, optional] PVOID                      CallBackContext
);

Parameter

[in] Object

Objek tempat menghasilkan peristiwa. Ini bisa menjadi filter AVStream atau objek pin.

[in, optional] EventSet

Peristiwa mengatur GUID agar cocok untuk menentukan peristiwa mana yang akan dihasilkan. Jika parameter ini NULL, set GUID tidak dipertahankan untuk menentukan peristiwa yang cocok.

[in] EventId

ID peristiwa yang cocok untuk menentukan peristiwa mana yang akan dihasilkan.

[in] DataSize

Ukuran dalam byte data untuk menghasilkan peristiwa data.

[in, optional] Data

Penunjuk ke buffer data untuk disertakan dalam pemberitahuan peristiwa. Jika driver tidak perlu menyampaikan informasi tambahan melalui pemberitahuan, atur parameter opsional ini ke NULL.

[in, optional] CallBack

Penunjuk ke fungsi yang ditentukan penelepon yang dipanggil untuk menentukan apakah peristiwa tertentu harus dibuat. Jika ini NULL, tidak ada verifikasi panggilan balik yang dilakukan untuk menentukan apakah peristiwa harus dibuat (hanya *EventSet *dan EventId yang digunakan).

[in, optional] CallBackContext

Penunjuk ke konteks yang ditentukan penelepon yang diteruskan ke fungsi panggilan balik CallBack.

Nilai kembali

Tidak ada

Keterangan

Saat memanggil fungsi ini, minidriver harus menempatkan Data dan CallBackContext di segmen data yang terkunci dan tidak dapat di-halaman. Selain itu, perhatikan bahwa CallBack dibuat pada DISPATCH_LEVEL. Fungsi panggilan balik harus berada di segmen terkunci dan harus siap untuk berjalan di IRQL = DISPATCH_LEVEL. Perhatikan bahwa hanya ada masalah tambahan di DX8:EventSet harus berada di segmen data terkunci.

Minidriver biasanya tidak memanggil fungsi ini secara langsung dan sebaliknya menggunakan salah satu versi yang melakukan transmisi yang sesuai: KsFilterGenerateEvents atau KsPinGenerateEvents.

Peristiwa dihasilkan jika ada di *Daftar peristiwa *Objek dan *EventId *cocok dengan ID peristiwa, EventSet cocok dengan GUID yang ditetapkan acara atau NULL, dan *CallBack *adalah NULL atau mengotorisasi kecocokan.

CallBack adalah panggilan balik yang ditentukan penelepon yang digunakan untuk penentuan kecocokan tambahan. Ini diprototi sebagai berikut:

BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);

AVStream meneruskan konten parameter rutin KsGenerateEventsCallBackContext dalam parameter Konteks panggilan balik ini. EventEntry adalah penunjuk ke struktur KSEVENT_ENTRY yang menentukan peristiwa yang akan dihasilkan. Fungsi panggilan balik harus mengembalikan TRUE jika kejadian ini harus dihasilkan.

Untuk informasi selengkapnya, lihat Penanganan Peristiwa di Peristiwa AVStream dan KS.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Microsoft Windows XP dan sistem operasi yang lebih baru dan DirectX 8.0 dan versi DirectX yang lebih baru.
Target Platform Universal
Header ks.h (termasuk Ks.h)
Pustaka Ks.lib
IRQL <=DISPATCH_LEVEL

Lihat juga

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsPinGenerateEvents