windows Driver 查询指定键值
NTSTATUS status;
HANDLE hKey = NULL;
OBJECT_ATTRIBUTES oa;
UNICODE_STRING strPath = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\HARDWARE\\DEVICEMAP\\SERIALCOMM");
UNICODE_STRING strKeyName = RTL_CONSTANT_STRING(L"\\Device\\Serial0");
ULONG ResultLength = 0;
PKEY_VALUE_PARTIAL_INFORMATION Pkvpi;
ULONG index = 0; UNICODE_STRING strOutPut;
wchar_t strTemp[ArrayLength] = {0};
RtlInitEmptyUnicodeString(&strOutPut, strTemp, ArrayLength); InitializeObjectAttributes(&oa, &strPath, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL);
status = ZwOpenKey(&hKey, KEY_ALL_ACCESS, &oa);
if (!NT_SUCCESS(status)){
KdPrint(("ZwOpenKey failed"));
return;
} status = ZwQueryValueKey(hKey, &strKeyName, KeyValuePartialInformation, NULL, 0, &ResultLength);
if (status == STATUS_OBJECT_NAME_NOT_FOUND || ResultLength == 0){
KdPrint(("ZwQueryValueKey failed"));
ZwClose(hKey);
return ;
}
Pkvpi = (PKEY_VALUE_PARTIAL_INFORMATION) ExAllocatePool(PagedPool, ResultLength);
if (!Pkvpi){
KdPrint(("ExAllocatePool failed"));
ExFreePool(Pkvpi);
ZwClose(hKey);
return;
}
status = ZwQueryValueKey(hKey, &strKeyName, KeyValuePartialInformation, Pkvpi, ResultLength, &ResultLength);
if (!NT_SUCCESS(status)){
KdPrint(("ZwQueryValueKey failed"));
ExFreePool(Pkvpi);
ZwClose(hKey);
return;
} RtlStringCbPrintfW(strOutPut.Buffer, ArrayLength, L"%s", Pkvpi->Data);
KdPrint(("%ws", strOutPut.Buffer)); ExFreePool(Pkvpi);
ZwClose(hKey);
版权声明:本文为博主原创文章,未经博主允许不得转载。
windows Driver 查询指定键值的更多相关文章
- NodeMCU使用ArduinoJson判断指定键值对存在与否
NodeMCU使用ArduinoJson判断指定键值对存在与否 从ArduinoJson库中可以得知,判断键值对是否存在可以使用containskey()函数,但是查看ArduinoJson-cont ...
- Memcache遍历查询所有键值的方法
直接举个Telnet命令行下遍历memcached所有key的方法: stats items STAT items:7:number1 STATitems:7:age188 END stats c ...
- windows模糊查询指定进程是否存在
习惯的查询 wmic process | findStr /i "**" /i 忽略大小写 我查考的链接 常用批处理命令总结3之Find和FindStr
- Windows下查询指定端口进程,并杀死
1. 找到指定端口的进程号 c:\devworks\lib\httpd-2.4.10-win32-VC9\Apache24\bin>netstat -ano|findstr "9000 ...
- JavaScript获取Django模板中指定键值的数据,使用过滤器
Django中利用js来操作数据的常规操作一般为点(.)操作符来获取字典或列表的数据,一般如{{data.0}},{{data.arg}} 但有时如果数据是嵌套类型的数据时,直接获取某个值就变得困难了 ...
- C# Aspose word 替换指定键值数据
今天研究一天的导出word,一开始准备选用为软件自带的office,但是有局限性,机子上必须安装office才能使用,最后在网上搜了一下资料aspose开源的 小公司没得钱,你懂得.最后选择了这款 开 ...
- php对数组中指定键值排序
function array_sort($arr,$keys,$type='asc'){ $keysvalue = $new_array = array(); foreach ($arr as $k= ...
- PHP 二维数组排序 可以按指定 键值排序
<?php header("Content-Type:utf-8"); $arr = array( 0 => array( 'name' => '国际原油价格', ...
- sql xml 查询指定节点值,以及节点属性值
SELECT top 10 [HFMBDATA].query('(/Items/Item[@ID=''tbBryj''])').value('(//TextValue)[1]','nvarcha ...
随机推荐
- detectron2 配置记录
1. RuntimeError: Not compiled with GPU support (ROIAlign_forward at /home/oliver/PycharmProjects/det ...
- RabbitMq学习笔记——概念
1.RabbitMQ简介 MQ全称为Message Queue(消息队列),是一种“应用程序”<—>“应用程序”的通信方法.MQ是一个典型的“消费”<—>“生产者”模型的代表, ...
- 【Unity】鼠标划定范围然后截图~
有时候要重复用某一个场景的某一个角度,都过去好几步了结果总不能再把已经打乱的场景物体再移动回去吧.so~智慧的我完成了伟大的偷懒.截图保存,什么时候要看,直接上图片以假乱真棒棒哒~ 当然这个功能还能用 ...
- C# 创建INI文件,写入并可读取。----转载
基于C#winform设计. 首先创建一个类,我命名为IniFiles.并引入命名空间using System.Runtime.InteropServices; 接着,声明API函数 [DllImpo ...
- Elasticsearch学习入门
一.关于Elasticsearch 1.特点 Elasticsearch基于全文搜索引擎 Apache Lucene ,由Java开发而来,面向API进行搜索, Restful 风格,分布式文件存储. ...
- STM32CubeIDE 编译C/C++程序
文章转自 https://www.cnblogs.com/skyofbitbit/p/3708216.html STM32CubeIDE 其实就是STM32CubeMx + eclipse 首先,W ...
- base64和blob
base64是二进制数据的一个编码格式,就像utf8一样的东西,他跟json一样,也是前后端交互能够相互识别的数据,他更多的是用来传递文件数据,并且如果是图片的base64,可以用来压缩 获取base ...
- 063、Java中输出信息
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- java项目构建工具Maven
一.java-maven常用命令 mvn archetype:create 创建Maven项目 mvn compile 编译源代码 mvn deploy 发布项目 mvn test-compile 编 ...
- mysql数据库可视化工具—Navicat Premium—安装与激活
一.Navicat premium简介 Navicat premium是一款数据库管理工具.将此工具连接数据库,你可以从中看到各种数据库的详细信息.包括报错,等等.当然,你也可以通过他,登陆数据库,进 ...