Bagikan melalui


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
STATUS_INVALID_DEVICE_REQUEST

WdfRegistryAssignMemory tidak dipanggil di IRQL = PASSIVE_LEVEL.

STATUS_INVALID_PARAMETER
Parameter yang tidak valid ditentukan.
STATUS_ACCESS_DENIED
Driver tidak membuka kunci registri dengan akses KEY_SET_VALUE.
STATUS_INTEGER_OVERFLOW
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)

Lihat juga

KEY_VALUE_BASIC_INFORMATION

UNICODE_STRING

WDFMEMORY_OFFSET

WdfMemoryCreate

WdfRegistryAssignMultiString

WdfRegistryAssignString

WdfRegistryAssignULong

WdfRegistryAssignUnicodeString

WdfRegistryAssignValue