Функция 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, если операция выполнена успешно. В противном случае метод может вернуть одно из следующих значений:

Код возврата Описание
STATUS_INVALID_DEVICE_REQUEST

WdfRegistryQueryString не был вызван в IRQL = PASSIVE_LEVEL.

STATUS_INVALID_PARAMETER
Указан недопустимый параметр.
STATUS_INSUFFICIENT_RESOURCES
Недостаточно памяти для завершения операции.
STATUS_ACCESS_DENIED
Драйвер не открыл раздел реестра с доступом KEY_QUERY_VALUE, KEY_READ или KEY_ALL_ACCESS.
STATUS_OBJECT_TYPE_MISMATCH
Тип данных значения реестра, указанного параметром ValueName , не был REG_SZ.
STATUS_OBJECT_NAME_NOT_FOUND
Значение реестра недоступно.
STATUS_RESOURCE_DATA_NOT_FOUND
Значение реестра существует в указанном разделе, но является пустым.
 

Список других возвращаемых значений, которые может возвращать метод 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)

См. также раздел

UNICODE_STRING

WdfRegistryQueryMemory

WdfRegistryQueryMultiString

WdfRegistryQueryULong

WdfRegistryQueryUnicodeString

WdfRegistryQueryValue

WdfStringCreate

WdfStringGetUnicodeString