ZwQueryValueKey routine
2016-02-05 15:22
627 查看
ZwQueryValueKey routine
ZwQueryValueKey 返回一个注册表键的值。Syntax
NTSTATUS ZwQueryValueKey( _In_ HANDLE KeyHandle, _In_ PUNICODE_STRING ValueName, _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, _Out_opt_ PVOID KeyValueInformation, _In_ ULONG Length, _Out_ PULONG ResultLength );
Parameters
KeyHandle [in]注册表键句柄,希望从这个键获取值。由 ZwCreateKey 或ZwOpenKey创建了这个句柄。
ValueName [in]
指向(意图从这个子键获取值的)子键(value entry)的名字
KeyValueInformationClass [in]
一个 KEY_VALUE_INFORMATION_CLASS 值,该值决定了返回到KeyValueInformation缓冲区 的数据的信息类型。
KeyValueInformation [out, optional]
指向用户自己申请的内存缓冲区,用于接收请求的结果。
Length [in]
以字节为单位的size,指定KeyValueInformation 缓冲区的长度。
ResultLength [out]
指向接收返回大小的变量的一个指针。大小以字节为单位。如果 ZwQueryValueKey 返回STATUS_SUCCESS, 调用者可以使用这个变量的值,用于确定返回了多少数据。如果返回了STATUS_BUFFER_OVERFLOW or STATUS_BUFFER_TOO_SMALL, 调用者可以使用这个值用来确定需要多少字节能存放返回值(key的信息);
Return value
ZwQueryValueKey 成功返回STATUS_SUCCESS ,失败返回一个合适的错误码,可能的错误码包括:Return code | Description |
STATUS_OBJECT_NAME_NOT_FOUND | 注册表值不可用。 |
STATUS_BUFFER_OVERFLOW | 提供的缓冲区过小仅有部分数据写入到缓冲区中。 并写入需要的最小值到*ResultLength。 |
STATUS_BUFFER_TOO_SMALL | 缓冲区过小且无数据写入到缓冲区。*ResultLength 被设置为需要的最小值。 |
STATUS_INVALID_PARAMETER | KeyInformationClass 不是有效的 KEY_VALUE_INFORMATION_CLASS 值 Warning 如果指定KeyValueInformationClass为 KeyValueBasicInformation , Windows 98 and Windows Me 返回 STATUS_SUCCESS 即使是键或者值不存在。 |
Remarks
传给 ZwQueryValueKey 的KeyHandle必须已经以KEY_QUERY_VALUE访问打开. 可以使用 KEY_QUERY_VALUE, KEY_READ, or KEY_ALL_ACCESS 作为 DesiredAccess 参数调用函数 ZwCreateKey or ZwOpenKey.更多操作注册表键的信息见Using the Registry in a Driver.
Note 如调用发生在用户模式,您应当使用"NtQueryValueKey" 代替"ZwQueryValueKey".
Requirements
Target platform | Universal |
Version | Available starting with Windows 2000. |
Header | Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI compliance rules | IrqlZwPassive, PowerIrpDDis, ZwRegistryCreate, ZwRegistryOpen, HwStorPortProhibitedDDIs,ZwRegistryCreate(storport), ZwRegistryOpen(storport) |
See also
KEY_VALUE_BASIC_INFORMATIONKEY_VALUE_FULL_INFORMATION
KEY_VALUE_INFORMATION_CLASS
KEY_VALUE_PARTIAL_INFORMATION
ZwCreateKey
ZwEnumerateValueKey
ZwOpenKey
相关文章推荐
- 【IOS】分隔视图控制器 (UISplitViewController)
- 封装实现UIButton左文字右图片
- 用Method Swizzling来避免数组越界与可变字典value值为nil造成的程序崩溃
- 基于脚本的动画的计时控制(“requestAnimationFrame”)(转)
- Error:Gradle version 2.2 is required. Current version is 1.12
- ExAcquireResourceExclusiveLite routine
- 自己定义UITabBarController
- Oc-语句总结(5)-NSnumber/NSvalue/NSDate
- 时间选择器 UIDatePicker 简单的创建方法
- ExAcquireResourceSharedLite routine
- Zoho Recruit -求职者审批表
- Solr DocValues详解
- iOS7系统中的坑——UITableViewCellScrollView
- 使用Hibernate时出现“could not execute query”异常
- iOS开发——UILabel自适应较多的文本
- iOS9 升级后UIAlertController的简单使用
- iOS之UIView加边框及边框颜色
- 移动开发中使用Onsen UI的笔记
- iOS UIWeb与JS之间的交互
- DICOM:DICOM开源库多线程分析之“ThreadPoolQueue in fo-dicom”