阅读:1430回复:7
怎么读hardware?
由于工作是原因,我需要在WIN2000以上的版本看一些硬件的值,比如北桥的寄存器的值,CMOS里面的信息,我该怎么写?
我已经装好WIN2KDDK+VC6.0,也能正确的编译通过了,我看见里面好象有个叫HAL的宏,我是不是只要用什么 READ_REGISTER_XXX READ_REGISTER_XXX这样的宏就可以了,是不是在用之前还要做一些别的事情,用完了以后还要做一些事情? |
|
沙发#
发布于:2002-11-08 12:54
你的先懂得怎么在驱动里读写硬件才行。
怎么在驱动里读写硬件?把本版看一遍。 |
|
|
板凳#
发布于:2002-11-08 12:57
我用了一个叫DDAppWiz.awx的VC向导工具,下载网址http://www.w2kdriverbook.com/downloads/Tools/ToolFiles.zip
是不是对一些初学者有用,我就不知道,大家用用好了,比自己写makefile文件好多了! |
|
地板#
发布于:2002-11-08 12:59
什么版本?DDK的HELP文档吗?
|
|
地下室#
发布于:2002-11-08 13:02
什么版本?DDK的HELP文档吗? 本版,不是版本 |
|
|
5楼#
发布于:2002-11-08 13:04
那你告诉我链接好了,谢谢你了,我找来找去不一定找得到的!
|
|
6楼#
发布于:2002-11-08 13:09
没找到,要是有个什么精华什么的就好了:(
|
|
7楼#
发布于:2002-11-08 13:26
从用户模式中访问设备键
应用程序经常需要访问注册表中关于硬件设备的信息。为了使这成为可能而同时又不暴露重要的Enum键,Microsoft提供了一组SetupDiXxx函数。 假设你的驱动程序使用IoRegisterDeviceInterface函数寄存了一个设备接口,并且你有一个该接口的符号连接名(通过枚举该接口GUID的所有实例或者从WM_DEVICECHANGE消息的参数中获得这个名字)。为了从硬件键中获得Manufacturer名字,你可以使用下面代码: #include <setupapi.h> ... LPTSTR lpszDeviceName; HDEVINFO info = SetupDiCreateDeviceInfoList(NULL, NULL); SP_DEVICE_INTERFACE_DATA ifdata = {sizeof(SP_DEVICE_INTERFACE_DATA)}; SetupDiOpenDeviceInterface(info, lpszDeviceName, 0, &ifdata); SP_DEVINFO_DATA did = {sizeof(SP_DEVINFO_DATA)}; SetupDiGetDeviceInterfaceDetail(info, &ifdata, NULL, 0, NULL, &did); TCHAR buffer[256]; SetupDiGetDeviceRegistryProperty(info, &did, SPDRP_MFG, NULL, (PBYTE) mfgname, sizeof(mfgname), NULL); SetupDiDestroyDeviceInfoList(info); lpszDeviceName是一个象“USB\\Vid_0547&Pid_102A\\7&2”一样的串。 |
|
|