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
指定的 ValueName 参数未REG_DWORD的注册表值的数据类型。
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)
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