Fungsi WdfDeviceQueryPropertyEx (wdfdevice.h)
[Berlaku untuk KMDF dan UMDF]
Metode WdfDeviceQueryPropertyEx mengambil properti perangkat tertentu.
Sintaks
NTSTATUS WdfDeviceQueryPropertyEx(
[in] WDFDEVICE Device,
[in] PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
[in] ULONG BufferLength,
[out] PVOID PropertyBuffer,
[out] PULONG RequiredSize,
[out] PDEVPROPTYPE Type
);
Parameter
[in] Device
Handel ke objek perangkat kerangka kerja.
[in] DeviceProperty
Penunjuk ke struktur WDF_DEVICE_PROPERTY_DATA yang mengidentifikasi properti perangkat yang akan diambil.
[in] BufferLength
Ukuran, dalam byte, dari buffer yang ditujukkan oleh PropertyBuffer.
[out] PropertyBuffer
Penunjuk yang disediakan penelepon ke buffer yang dialokasikan pemanggil yang menerima informasi yang diminta. Penunjuk dapat berupa NULL jika parameter BufferLength adalah nol.
[out] RequiredSize
Lokasi yang disediakan penelepon yang, saat dikembalikan, berisi ukuran, dalam byte, dari informasi yang disimpan metode di PropertyBuffer. Jika nilai pengembalian fungsi STATUS_BUFFER_TOO_SMALL, lokasi ini menerima ukuran buffer yang diperlukan.
[out] Type
Penunjuk ke variabel DEVPROPTYPE . Jika metode berhasil, setelah mengembalikan parameter ini berisi nilai jenis properti dari data properti yang disimpan di PropertyBuffer.
Nilai kembali
Jika operasi berhasil, WdfDeviceQueryPropertyEx mengembalikan STATUS_SUCCESS. Nilai pengembalian tambahan meliputi:
Menampilkan kode | Deskripsi |
---|---|
|
Buffer yang disediakan terlalu kecil untuk menerima informasi. |
|
Nilai DeviceProperty yang ditentukan tidak valid. |
Metode ini mungkin mengembalikan nilai NTSTATUS lainnya.
Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.
Keterangan
Anda dapat menggunakan WdfDeviceQueryPropertyEx untuk mengambil properti apa pun yang diekspos melalui model properti terpadu, sedangkan metode WdfDeviceQueryProperty hanya memungkinkan kueri subset model properti terpadu.
Sebelum menerima data properti perangkat, driver biasanya memanggil metode WdfDeviceQueryPropertyEx hanya untuk mendapatkan ukuran buffer yang diperlukan. Untuk beberapa properti, ukuran data dapat berubah antara kapan ukuran yang diperlukan dikembalikan dan ketika driver memanggil WdfDeviceQueryPropertyEx lagi. Oleh karena itu, driver harus memanggil WdfDeviceQueryPropertyEx di dalam perulangan yang dijalankan hingga status pengembalian tidak STATUS_BUFFER_TOO_SMALL.
Yang terbaik adalah menggunakan WdfDeviceQueryPropertyEx hanya jika ukuran buffer yang diperlukan diketahui dan tidak berubah, karena dalam hal ini driver harus memanggil WdfDeviceQueryPropertyEx hanya sekali. Jika ukuran buffer yang diperlukan tidak diketahui atau bervariasi, driver harus memanggil WdfDeviceAllocAndQueryPropertyEx.
Untuk informasi tentang metode terkait, lihat Mengakses Model Properti Perangkat Terpadu.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1.13 |
Versi UMDF minimum | 2.0 |
Header | wdfdevice.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | APC_LEVEL |