Fungsi WdfRegistryAssignMemory (wdfregistry.h)
[Berlaku untuk KMDF dan UMDF]
Metode WdfRegistryAssignMemory menetapkan data yang terkandung dalam buffer memori tertentu ke nama nilai tertentu dalam registri.
Sintaks
NTSTATUS WdfRegistryAssignMemory(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] ULONG ValueType,
[in] WDFMEMORY Memory,
[in, optional] PWDFMEMORY_OFFSET MemoryOffsets
);
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] ValueType
Nilai yang mengidentifikasi jenis data. Untuk daftar nilai tipe data, lihat Tipe anggota KEY_VALUE_BASIC_INFORMATION.
[in] Memory
Handel ke objek memori kerangka kerja. Objek ini mewakili buffer yang berisi data yang akan ditetapkan ke nama nilai yang ditunjuk valueName .
[in, optional] MemoryOffsets
Penunjuk ke struktur WDFMEMORY_OFFSET yang disediakan driver yang mengidentifikasi subbagian buffer yang ditentukan Memori . Parameter ini bersifat opsional dan dapat berupa NULL.
Nilai kembali
WdfRegistryAssignMemory mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode mungkin mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
WdfRegistryAssignMemory tidak dipanggil di IRQL = PASSIVE_LEVEL. |
|
Parameter yang tidak valid ditentukan. |
|
Driver tidak membuka kunci registri dengan akses KEY_SET_VALUE. |
|
Konten struktur WDFMEMORY_OFFSET yang ditentukan parameter MemoryOffsets tidak valid. |
Metode ini juga mungkin mengembalikan nilai NTSTATUS lainnya.
Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.
Keterangan
Jika nama nilai yang ditentukan parameter ValueName sudah ada, WdfRegistryAssignMemory memperbarui data nilai.
Untuk informasi selengkapnya tentang objek kunci registri, lihat Menggunakan Registri di Driver Framework-Based.
Contoh
Contoh kode berikut membuat objek memori kerangka kerja, memuat buffer objek dengan data palsu, dan menetapkan konten buffer ke nilai registri.
PUCHAR pBuffer;
WDFMEMORY memory;
NTSTATUS status;
UCHAR i;
DECLARE_UNICODE_STRING_SIZE(valueName, L"MyValueName");
status = WdfMemoryCreate(
WDF_NO_OBJECT_ATTRIBUTES,
NonPagedPool,
0,
MEMORY_LENGTH,
&memory,
(PVOID*)&pBuffer
);
if (NT_SUCCESS(status)) {
// Fill the buffer with fake data.
for (i = 1; i <= MEMORY_LENGTH; i++) {
pBuffer[i-1] = i;
}
status = WdfRegistryAssignMemory(
Key,
&valueName,
REG_BINARY,
memory,
NULL
);
}
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) |