博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows Driver 查询指定键值
阅读量:6853 次
发布时间:2019-06-26

本文共 1498 字,大约阅读时间需要 4 分钟。

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);

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

转载于:https://www.cnblogs.com/qq76211822/p/4712058.html

你可能感兴趣的文章
ES6变量的解构赋值
查看>>
ansible自动化运维详细教程及playbook详解
查看>>
快速解决Dev c++无法调试
查看>>
自学算法笔记
查看>>
python通过luhn算法实现的信用卡卡号验证源码
查看>>
小米手机5X获得Root权限的方法
查看>>
中国联通把百度指向了127.0.0.1?
查看>>
Java程序员这样优化简历,一投制胜!
查看>>
runtime(消息转发)
查看>>
设计模式——建造者模式
查看>>
Async & generator & Promise
查看>>
解决vagrant ssh登录时permission deny的问题
查看>>
Dapper,大规模分布式系统的跟踪系统
查看>>
Spring源码之XMLBeanFactory
查看>>
PopupWindow 点击外部区域无法关闭的问题
查看>>
jQuery 遍历
查看>>
开源的丰富的flutter Icons库
查看>>
内存管理Release和Retain实现原理
查看>>
(JVM 笔记)Java虚拟机:Java 内存管理
查看>>
一分钟读懂兼容报告——行业对标数据助你定位产品状况
查看>>