Функция WdfRegistryQueryString (wdfregistry.h)
[Применимо к KMDF и UMDF]
Метод WdfRegistryQueryString извлекает строковые данные, которые в настоящее время назначены указанному строковому значению реестра, и назначает строку указанному объекту строки платформы.
Синтаксис
NTSTATUS WdfRegistryQueryString(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] WDFSTRING String
);
Параметры
[in] Key
Дескриптор для объекта раздела реестра, представляющего открытый раздел реестра.
[in] ValueName
Указатель на структуру UNICODE_STRING , содержащую имя для значения реестра.
[in] String
Дескриптор для объекта строки платформы. Платформа назначит этому объекту строковые данные значения реестра.
Возвращаемое значение
WdfRegistryQueryString возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае метод может вернуть одно из следующих значений:
Код возврата | Описание |
---|---|
|
WdfRegistryQueryString не был вызван в IRQL = PASSIVE_LEVEL. |
|
Указан недопустимый параметр. |
|
Недостаточно памяти для завершения операции. |
|
Драйвер не открыл раздел реестра с доступом KEY_QUERY_VALUE, KEY_READ или KEY_ALL_ACCESS. |
|
Тип данных значения реестра, указанного параметром ValueName , не был REG_SZ. |
|
Значение реестра недоступно. |
|
Значение реестра существует в указанном разделе, но является пустым. |
Список других возвращаемых значений, которые может возвращать метод WdfRegistryQueryString , см. в разделе Ошибки создания объекта платформы.
Этот метод также может возвращать другие значения NTSTATUS.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Чтобы получить строку из строкового объекта, драйвер может вызвать WdfStringGetUnicodeString.
Дополнительные сведения об объектах раздела реестра см. в разделе Использование реестра в Framework-Based Drivers.
Примеры
В следующем примере кода создается строковый объект, извлекаются строковые данные из раздела реестра, а строковые данные извлекаются из строкового объекта.
UNICODE_STRING str;
WDFSTRING string;
NTSTATUS status;
DECLARE_CONST_UNICODE_STRING(valueName, STRING_VALUE_NAME);
status = WdfStringCreate(
NULL,
WDF_NO_OBJECT_ATTRIBUTES,
&string
);
if (NT_SUCCESS(status)) {
status = WdfRegistryQueryString(
Key,
&valueName,
string
);
if (NT_SUCCESS(status)) {
WdfStringGetUnicodeString(
string,
&str
);
}
}
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия 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) |