Fungsi WdfRegistryQueryValue (wdfregistry.h)
[Berlaku untuk KMDF dan UMDF]
Metode WdfRegistryQueryValue mengambil data yang saat ini ditetapkan ke nilai registri tertentu.
Sintaks
NTSTATUS WdfRegistryQueryValue(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] ULONG ValueLength,
[out, optional] PVOID Value,
[out, optional] PULONG ValueLengthQueried,
[out, optional] PULONG ValueType
);
Parameter
[in] Key
Handel ke objek kunci registri yang mewakili kunci registri yang dibuka.
[in] ValueName
Penunjuk ke struktur UNICODE_STRING yang berisi nama nilai.
[in] ValueLength
Panjang, dalam byte, dari buffer yang dirujuk Nilai .
[out, optional] Value
Penunjuk ke buffer yang dialokasikan driver yang menerima data nilai registri. Jika pointer ini NULL, WdfRegistryQueryValue mengambil panjang data tetapi bukan data.
[out, optional] ValueLengthQueried
Penunjuk ke lokasi yang menerima panjang data nilai registri. Penunjuk ini bersifat opsional dan dapat berupa NULL.
[out, optional] ValueType
Penunjuk ke lokasi yang menerima jenis data nilai registri. Untuk daftar nilai jenis data, lihat Tipe anggota KEY_VALUE_BASIC_INFORMATION. Penunjuk ini bersifat opsional dan dapat berupa NULL.
Nilai kembali
WdfRegistryQueryValue mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode mungkin mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
WdfRegistryQueryValue tidak dipanggil di IRQL = PASSIVE_LEVEL. |
|
Parameter yang tidak valid ditentukan. |
|
Driver tidak membuka kunci registri dengan akses KEY_QUERY_VALUE, KEY_READ, atau KEY_ALL_ACCESS. |
|
Buffer yang dirujuk parameter Nilai terlalu kecil, dan hanya sebagian data yang ditulis ke buffer. |
|
Buffer Nilai terlalu kecil, dan tidak ada data yang ditulis ke buffer. |
|
Nilai registri tidak tersedia. |
Metode ini juga dapat mengembalikan nilai NTSTATUS lainnya.
Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.
Keterangan
Untuk informasi selengkapnya tentang objek kunci registri, lihat Menggunakan Registri di Driver Framework-Based.
Contoh
Contoh kode berikut membuka kunci perangkat keras perangkat dan mengambil data yang ditetapkan ke nilai NumberOfToasters , yang disimpan di bawah kunci perangkat keras perangkat.
WCHAR comPort[FM_COM_PORT_STRING_LENGTH];
ULONG length;
NTSTATUS status;
ULONG length, valueType, value;
DECLARE_CONST_UNICODE_STRING(valueName, L"NumberOfToasters");
WDFKEY hKey;
status = WdfDeviceOpenRegistryKey(
Device,
PLUGPLAY_REGKEY_DEVICE,
KEY_QUERY_VALUE,
NULL,
&hKey
);
if (!NT_SUCCESS (status)) {
goto Error;
}
status = WdfRegistryQueryValue(
hKey,
&valueName,
sizeof(ULONG),
&value,
&length,
&valueType
);
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1,0 |
Versi UMDF minimum | 2.0 |
Header | wdfregistry.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk