Функция WdfRegistryAssignMemory (wdfregistry.h)
[Относится к KMDF и UMDF]
Метод WdfRegistryAssignMemory назначает данные, содержащиеся в указанном буфере памяти, указанному имени значения в реестре.
Синтаксис
NTSTATUS WdfRegistryAssignMemory(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] ULONG ValueType,
[in] WDFMEMORY Memory,
[in, optional] PWDFMEMORY_OFFSET MemoryOffsets
);
Параметры
[in] Key
Дескриптор для объекта раздела реестра, представляющего открытый раздел реестра.
[in] ValueName
Указатель на структуру UNICODE_STRING , содержащую имя значения.
[in] ValueType
Значение типа , определяющее тип данных. Список значений типов данных см. в элементе TypeKEY_VALUE_BASIC_INFORMATION.
[in] Memory
Дескриптор объекта памяти платформы. Этот объект представляет буфер, содержащий данные, которые будут назначены имени значения, на которое указывает ValueName .
[in, optional] MemoryOffsets
Указатель на структуру WDFMEMORY_OFFSET , предоставляемую драйвером, которая определяет подраздел буфера, указанного в памяти . Этот параметр является необязательным и может иметь значение NULL.
Возвращаемое значение
WdfRegistryAssignMemory возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае метод может вернуть одно из следующих значений:
Код возврата | Описание |
---|---|
|
WdfRegistryAssignMemory не был вызван в IRQL = PASSIVE_LEVEL. |
|
Указан недопустимый параметр. |
|
Драйвер не открыл раздел реестра с KEY_SET_VALUE доступом. |
|
Содержимое структуры WDFMEMORY_OFFSET , указанной параметром MemoryOffsets , было недопустимым. |
Этот метод также может возвращать другие значения NTSTATUS.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Если имя значения, указанное параметром ValueName , уже существует, WdfRegistryAssignMemory обновляет данные значения.
Дополнительные сведения об объектах раздела реестра см. в статье Использование реестра в Framework-Based Drivers.
Примеры
В следующем примере кода создается объект памяти платформы, загружается буфер объекта с поддельными данными и содержимое буфера присваивается значению реестра.
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
);
}
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfregistry.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |