我的机器是Windows 8机器。我想从我的自定义驱动程序中读取HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36fc9e60-c465-11cf-8056-444553540000}
的“UpperFilters”键,以获得通过USB设备的过滤器驱动程序。如何从驱动程序代码中读取注册表?
0
A
回答
3
我没有,因为写的驱动程序XP的日子,但假设你在谈论一个内核模式驱动程序,我相信你需要ZwOpenKey
,ZwQueryValueKey
和ZwClose
。一般指导here。
-1
here是代码示例来读取在C
这里的注册表是一个示例:
DWORD BufferSize = TOTALBYTES;
DWORD cbData;
DWORD dwRet;
PPERF_DATA_BLOCK PerfData = (PPERF_DATA_BLOCK) malloc(BufferSize);
cbData = BufferSize;
printf("\nRetrieving the data...");
dwRet = RegQueryValueEx(HKEY_PERFORMANCE_DATA,
TEXT("Global"),
NULL,
NULL,
(LPBYTE) PerfData,
&cbData);
while(dwRet == ERROR_MORE_DATA)
{
// Get a buffer that is big enough.
BufferSize += BYTEINCREMENT;
PerfData = (PPERF_DATA_BLOCK) realloc(PerfData, BufferSize);
cbData = BufferSize;
printf(".");
dwRet = RegQueryValueEx(HKEY_PERFORMANCE_DATA,
TEXT("Global"),
NULL,
NULL,
(LPBYTE) PerfData,
&cbData);
}
if(dwRet == ERROR_SUCCESS)
printf("\n\nFinal buffer size is %d\n", BufferSize);
else printf("\nRegQueryValueEx failed (%d)\n", dwRet);
或一个简单的例子
RegGetValue(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Class", "{36fc9e60-c465-11cf-8056-444553540000}", RRF_RT_ANY, NULL, (PVOID)&value, &BufferSize);
+1
不错。优秀作品。你的代码在用户模式下工作正常。但是这并不能回答我的问题。实际上在内核模式下,因为我正在讨论驱动程序开发,所以没有找到malloc及其亲属,相反我们有ExAllocatePool()及其亲戚。另外RegXXX()函数不可用。相反,我们有ZwXXX()函数。 –
相关问题
- 1. 如何从注册表中读取值?
- 2. 为什么要在驱动程序代码中注册struct cdev
- 3. 蟒蛇代码读取注册表
- 4. 如何从64位Windows注册表中读取启动项目?
- 5. 取消注册从DriverManager.getDrivers()返回的驱动程序可以吗?
- 6. 如何使用android/linux电源驱动程序注册设备驱动程序?
- 7. 从智能卡(驱动程序卡)读取DIN(驱动程序识别码)
- 8. 如何在java中读取注册表
- 9. 从Chrome扩展程序中读取Windows注册表
- 10. 无法注册JDBC驱动程序
- 11. MSI注册PCIE设备驱动程序
- 12. Oracle odbc驱动程序未注册IIS
- 13. 使用class.ForName注册HSQLDB驱动程序
- 14. NSIS:从注册表中读取DWORD?
- 15. 从注册表中读取REG_RESOURCE_LIST值
- 16. 从注册表中读取值C++
- 17. ERROR_MORE_DATA ----从注册表中读取
- 18. 从Windows注册表中读取值?
- 19. 从Perl注册表中读取Perl
- 20. 从注册表中读取价值
- 21. 如何在Tomcat 7.0.47启动时注册oracle jdbc驱动程序?
- 22. 如何检查程序读取/写入磁盘和注册表
- 23. 如何从驱动程序在spark中读取/写入HDFS
- 24. 如何从32位进程读取64位注册表项?
- 25. 在注册表中删除Windows驱动程序设备类
- 26. Windows注册表项可防止自动安装驱动程序?
- 27. 如何读取子项在注册表
- 28. vbs如何读取注册表路径
- 29. 如何在VBScript中从注册表中读取(默认)值?
- 30. 如何从PEPROCESS中读取驱动程序中的导入地址表?
是的,这正是我所要求的。 –