Поделиться через


Функция 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 драйверах.

Примеры

В следующем примере кода создается строковый объект, извлекаются строковые данные из раздела реестра и извлекаются строковые данные из объекта строки.

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 (include 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