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 查询指定键值的更多相关文章

  1. NodeMCU使用ArduinoJson判断指定键值对存在与否

    NodeMCU使用ArduinoJson判断指定键值对存在与否 从ArduinoJson库中可以得知,判断键值对是否存在可以使用containskey()函数,但是查看ArduinoJson-cont ...

  2. Memcache遍历查询所有键值的方法

    直接举个Telnet命令行下遍历memcached所有key的方法:   stats items STAT items:7:number1 STATitems:7:age188 END stats c ...

  3. windows模糊查询指定进程是否存在

    习惯的查询 wmic process | findStr /i "**" /i 忽略大小写 我查考的链接 常用批处理命令总结3之Find和FindStr

  4. Windows下查询指定端口进程,并杀死

    1. 找到指定端口的进程号 c:\devworks\lib\httpd-2.4.10-win32-VC9\Apache24\bin>netstat -ano|findstr "9000 ...

  5. JavaScript获取Django模板中指定键值的数据,使用过滤器

    Django中利用js来操作数据的常规操作一般为点(.)操作符来获取字典或列表的数据,一般如{{data.0}},{{data.arg}} 但有时如果数据是嵌套类型的数据时,直接获取某个值就变得困难了 ...

  6. C# Aspose word 替换指定键值数据

    今天研究一天的导出word,一开始准备选用为软件自带的office,但是有局限性,机子上必须安装office才能使用,最后在网上搜了一下资料aspose开源的 小公司没得钱,你懂得.最后选择了这款 开 ...

  7. php对数组中指定键值排序

    function array_sort($arr,$keys,$type='asc'){ $keysvalue = $new_array = array(); foreach ($arr as $k= ...

  8. PHP 二维数组排序 可以按指定 键值排序

    <?php header("Content-Type:utf-8"); $arr = array( 0 => array( 'name' => '国际原油价格', ...

  9. sql xml 查询指定节点值,以及节点属性值

    SELECT   top 10  [HFMBDATA].query('(/Items/Item[@ID=''tbBryj''])').value('(//TextValue)[1]','nvarcha ...

随机推荐

  1. ELK/EFK——日志收集分析平台

    ELK——日志收集分析平台 ELK简介:在开源的日志管理方案之中,最出名的莫过于ELK了,ELK由ElasticSearch.Logstash和Kiabana三个开源工具组成.1)ElasticSea ...

  2. JS原生编写实现留言板功能

    实现这个留言板功能比较简单,所以先上效果图: 实现用户留言内容,留言具体时间. <script> window.onload = function(){ var oMessageBox = ...

  3. SpringBoot 入门demo

    创建SpringBoot项目方式一 (1)新建maven项目,不使用骨架. 使用maven管理依赖就行了,不必使用骨架(模板). (2)在pom.xml中添加 <!--springboot核心. ...

  4. Gradient descend 梯度下降法和归一化、python中的实现(未完善)

    梯度下降法是优化函数参数最常用.简单的算法 通常就是将一组输入样本的特征$x^i$传入目标函数中,如$f(x) = wx + b$,再计算每个样本通过函数预测的值$f(x^i)$与其真实值(标签)$y ...

  5. [7b2美化]柒比贰 魔改系列|7B2-分类封面添加波浪效果&每日诗词

    本文转载自:钻芒博客 https://www.zmki.cn/5105.html 效果如图: 代码: 首先在style.css样式表里添加波浪样式 /*浪来了*/ .lang { overflow: ...

  6. 数据归一化Scaler-机器学习算法

    //2019.08.03下午#机器学习算法的数据归一化(feature scaling)1.数据归一化的必要性:对于机器学习算法的基础训练数据,由于数据类型的不同,其单位及其量纲也是不一样的,而也正是 ...

  7. 吴裕雄--天生自然JAVA数据库编程:PrepareStatement

    import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import j ...

  8. 请求http协议分析- (mysql-thinkphp) (5)

    http协议 https://tools.ietf.org/pdf/rfc7231.pdf https://www.w3.org/Protocols/ ======================== ...

  9. P1092 最好吃的月饼

    1092 最好吃的月饼 (20分)   月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种. 若想评比出一种“最好吃”的月饼,那势必在吃货界引发一场腥风血雨…… 在这里我们用数字说话,给 ...

  10. SChema中group指示器的使用

    <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSpy v2011 (h ...