WdfRegistryQueryULong 函数 (wdfregistry.h)

[适用于 KMDF 和 UMDF]

WdfRegistryQueryULong 方法检索当前分配给指定注册表值的数据 (REG_DWORD) 无符号长字,并将数据复制到指定位置。

语法

NTSTATUS WdfRegistryQueryULong(
  [in]  WDFKEY           Key,
  [in]  PCUNICODE_STRING ValueName,
  [out] PULONG           Value
);

参数

[in] Key

表示打开的注册表项的注册表项对象的句柄。

[in] ValueName

指向包含注册表值名称 的UNICODE_STRING 结构的指针。

[out] Value

指向位置的指针,该位置接收分配给 ValueName 指定的注册表值的数据。

返回值

如果操作成功,WdfRegistryQueryULong 将返回STATUS_SUCCESS。 否则,方法可能会返回以下值之一:

返回代码 说明
STATUS_INVALID_DEVICE_REQUEST

未在 IRQL = PASSIVE_LEVEL调用 WdfRegistryQueryULong

STATUS_INVALID_PARAMETER
指定的参数无效。
STATUS_INSUFFICIENT_RESOURCES
内存不足,无法完成操作。
STATUS_ACCESS_DENIED
驱动程序未使用KEY_QUERY_VALUE、KEY_READ或KEY_ALL_ACCESS访问权限打开注册表项。
STATUS_OBJECT_TYPE_MISMATCH
未REG_DWORD ValueName 参数指定的注册表值的数据类型。
STATUS_OBJECT_NAME_NOT_FOUND
注册表值不可用。
 

此方法还可能返回其他 NTSTATUS 值

如果驱动程序提供无效的对象句柄,则会发生 bug 检查。

注解

有关注册表项对象的详细信息,请参阅 在 WDF 驱动程序中使用注册表

示例

下面的代码示例检索当前分配给 NumberOfProduct 值的数据。

NTSTATUS  status;
ULONG  value;
DECLARE_CONST_UNICODE_STRING(valueName, L"NumberOfThings");

status = WdfRegistryQueryULong(
                               hKey,
                               &valueName,
                               &value
                               );

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfregistry.h (包括 Wdf.h)
Library Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI 符合性规则 DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)

另请参阅

UNICODE_STRING

WdfRegistryQueryMemory

WdfRegistryQueryMultiString

WdfRegistryQueryString

WdfRegistryQueryUnicodeString

WdfRegistryQueryValue