Bagikan melalui


Fungsi WdfFdoInitQueryPropertyEx (wdffdo.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfFdoInitQueryPropertyEx mengambil properti perangkat tertentu.

Sintaks

NTSTATUS WdfFdoInitQueryPropertyEx(
  [in]  PWDFDEVICE_INIT           DeviceInit,
  [in]  PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
  [in]  ULONG                     BufferLength,
  [out] PVOID                     PropertyBuffer,
  [out] PULONG                    ResultLength,
  [out] PDEVPROPTYPE              Type
);

Parameter

[in] DeviceInit

Penunjuk ke struktur WDFDEVICE_INIT yang diperoleh driver dari fungsi panggilan balik EvtDriverDeviceAdd .

[in] DeviceProperty

Penunjuk ke struktur WDF_DEVICE_PROPERTY_DATA yang mengidentifikasi properti perangkat yang akan diambil.

[in] BufferLength

Ukuran, dalam byte, dari buffer yang diacu 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] ResultLength

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 yang, saat dikembalikan, berisi nilai jenis properti data properti yang disimpan di PropertyBuffer.

Nilai kembali

Jika operasi berhasil, WdfFdoInitQueryPropertyEx mengembalikan STATUS_SUCCESS. Nilai pengembalian tambahan meliputi:

Menampilkan kode Deskripsi
STATUS_BUFFER_TOO_SMALL
Buffer yang disediakan terlalu kecil untuk menerima informasi.
STATUS_INVALID_PARAMETER
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

Sebelum menerima data properti perangkat, driver biasanya memanggil metode WdfFdoInitQueryPropertyEx hanya untuk mendapatkan ukuran buffer yang diperlukan. Untuk beberapa properti, ukuran data dapat berubah antara ketika ukuran yang diperlukan dikembalikan dan ketika driver memanggil WdfFdoInitQueryPropertyEx lagi. Oleh karena itu, driver harus memanggil WdfFdoInitQueryPropertyEx di dalam perulangan yang dijalankan hingga status pengembalian tidak STATUS_BUFFER_TOO_SMALL.

Yang terbaik adalah menggunakan WdfdoInitQueryPropertyEx hanya jika ukuran buffer yang diperlukan diketahui dan tidak berubah, karena dalam hal ini driver harus memanggil WdfFdoInitQueryPropertyEx hanya sekali. Jika ukuran buffer yang diperlukan tidak diketahui atau bervariasi, driver harus memanggil WdfFdoInitAllocAndQueryPropertyEx.

Driver hanya dapat memanggil WdfFdoInitQueryPropertyEx sebelum memanggil WdfDeviceCreate. Untuk informasi selengkapnya tentang memanggil WdfDeviceCreate, lihat Membuat Objek Perangkat Kerangka Kerja.

Setelah memanggil WdfDeviceCreate, driver dapat memperoleh informasi properti perangkat dengan memanggil WdfDeviceQueryPropertyEx.

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 wdffdo.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL

Lihat juga

WdfFdoInitQueryProperty