struktur KSDEVICE_DESCRIPTOR (ks.h)
Struktur KSDEVICE_DESCRIPTOR menjelaskan karakteristik perangkat tertentu.
Sintaks
typedef struct _KSDEVICE_DESCRIPTOR {
const KSDEVICE_DISPATCH *Dispatch;
ULONG FilterDescriptorsCount;
const KSFILTER_DESCRIPTOR const * * FilterDescriptors;
ULONG Version;
ULONG Flags;
PVOID Alignment;
} KSDEVICE_DESCRIPTOR, *PKSDEVICE_DESCRIPTOR;
Anggota
Dispatch
Penunjuk ke tabel pengiriman klien untuk perangkat ini. Tabel pengiriman ini berisi fungsi pengiriman klien untuk pesan PNP seperti Tambahkan, Mulai, Hentikan, Hapus. Klien tidak diharuskan untuk menyediakan tabel pengiriman kecuali mereka ingin menerima panggilan balik untuk pesan PNP yang dijelaskan dalam tabel pengiriman. Setiap anggota tabel pengiriman dapat berupa NULL untuk menunjukkan bahwa klien tidak ingin menerima pemberitahuan untuk pesan tertentu tersebut. Untuk informasi selengkapnya, lihat KSDEVICE_DISPATCH.
FilterDescriptorsCount
Anggota ini berisi jumlah deskriptor filter untuk perangkat ini yang akan disediakan di anggota FilterDescriptors . Nol adalah nilai hukum untuk anggota ini; klien dapat membuat pabrik filter secara dinamis dengan fungsi KsCreateFilterFactory alih-alih secara statis menjelaskannya dalam deskriptor perangkat.
FilterDescriptors
Penunjuk ke array deskriptor filter yang menjelaskan filter yang dapat dibuat oleh perangkat ini. Anggota ini mungkin NULL jika FilterDescriptorsCount nol. Untuk informasi selengkapnya, lihat KSFILTER_DESCRIPTOR.
Version
Nilai jenis ULONG. Ini harus menjadi satu dan hanya salah satu nilai dalam tabel berikut, atau diatur ke nol jika menulis driver 0x100 pra-versi.
Nilai | Deskripsi |
---|---|
KSDEVICE_DESCRIPTOR_VERSION | Menunjukkan dukungan pengiriman AVStrMiniDeviceQueryInterfaceKSDEVICE_DISPATCH. |
KSDEVICE_DESCRIPTOR_VERSION_2 | Menunjukkan dukungan anggota Bendera KSDEVICE_DESCRIPTOR. |
Flags
Nilai jenis ULONG. Hanya ada satu bendera yang saat ini ditentukan.
Bendera | Deskripsi |
---|---|
KSDEVICE_FLAG_ENABLE_REMOTE_WAKEUP | Menunjukkan bahwa perangkat mendukung wakeup jarak jauh. |
Alignment
Keterangan
Paling sering, struktur ini digunakan bersama dengan KsInitializeDriver dalam fungsi DriverEntry klien untuk menginisialisasi perangkat. Struktur ini juga digunakan untuk menginisialisasi atau membuat perangkat secara manual dengan fungsi KsInitializeDevice dan KsCreateDevice .
Jika Anda mengatur Versi ke KSDEVICE_DESCRIPTOR_VERSION_2 dan menjalankan driver Anda pada versi awal AVStream yang tidak mendukung Bendera, semua bendera akan dianggap nol.
Demikian pula, menggunakan deskriptor versi sebelumnya pada versi AVStream yang lebih baru menyebabkan tidak ada bendera yang ditentukan.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | ks.h (termasuk Ks.h) |