阅读:3019回复:12
一定要得到硬件信息吗?
写驱动程序,特别是关于硬件的驱动程序,是否一定要知道硬件的
相关信息?怎样得到硬件的相关信息?例如一块网卡、或一块显卡? |
|
沙发#
发布于:2001-05-16 17:07
大概必须知道的就是PID和VID了,我现在正为这个发愁
|
|
|
板凳#
发布于:2001-05-16 21:49
用usbview就可以看到PID,VID
|
|
地板#
发布于:2001-05-17 08:54
那只能看到USB设备的吧,别的设备呢? |
|
|
地下室#
发布于:2001-05-17 09:07
// Read in the Device and Vendor ID of a given slot.
NdisReadPciSlotInformation( Adapter->MiniportAdapterHandle, 0, PCI_VENDOR_ID_REGISTER, (PVOID) &Device_Vendor_Id, 0x4);//实际上读了Vendor_Id 2-byte + Device_Id 2-byte //****************************************************** // Check to see if we found a 8139 based adapter. if ((((USHORT) Device_Vendor_Id) == VendorID) && (((USHORT) (Device_Vendor_Id >> 16)) == DeviceID)) { DBGPRINT(("\n\n\n Found adapter %x at slot=%x\n", Device_Vendor_Id, Slot)); // We found our adapter, so now we need to get the resources that were // assigned to the adapter that we just found. Status = NdisMPciAssignResources( Adapter->MiniportAdapterHandle, Slot, &AssignedResources); 我写的RTL8139的驱动片断.VID等ID只是要知道我们现在得到的资源是不是我们要加载驱动的卡的.PCI上所有卡都有一个资源.开机时就确定了.如果你机器上有多块卡没有安驱动.当然了,有可能你读到的资源是另一块卡的. 但是如果你确定你的机器上只有一个卡还没有装驱动.或者直接去update.那么你就不用读VID. "CWH"先生你说是吧? |
|
|
5楼#
发布于:2001-05-17 09:37
可是VID和PID要在INF文档中用到的,要知道这时驱动还没有装上呀。 btw:谁是CWH? |
|
|
6楼#
发布于:2001-05-17 10:01
其实我也认为要得到相关的硬件信息,否则怎么驱动硬件,特别是对
USb 设备的端点信息和描述表. 顺便问一下,各位在写usb驱动的过程中,难道不需要上述的硬件信息吗? |
|
7楼#
发布于:2001-05-17 12:36
现在的问题是.纯软驱动也可以load上去.
我从硬件中读出的VID,是我的驱动确定资源的一种方法. 而INF中的VID并没有严格的作用.我反正不用.如果你在你的驱动中读取了注册表.并且发现VID与你硬件中的不同.你完全可以拒绝load上去.也可以继续下去.这是由你控制的. |
|
|
8楼#
发布于:2001-05-17 12:38
CWH是我的驱动入门老师.
牛人啊.等你见到就知道了.他不像就没人像了. 不说了.我逃了. |
|
|
9楼#
发布于:2001-05-17 15:47
INF里面的VID,PID不是说没有用处.而是用处不大.也就是说.通过你VIDPID等信息算出来的键值,可能会同windows在搜索新硬件时,从硬件读出的VIDPID算出的值不同.那么,如果你删除你的驱动.再让windows搜索,他可能不知道你为这块卡装过驱动.但是,你完全可以让你的驱动不管这套,不读注册表,直接load上去.需要的参数你在驱动里设定好.不从注册表里面读.
OK. 这个驱动就这么安上了.就这么工作了.但是windows不知道他为谁工作而已. |
|
|
10楼#
发布于:2001-05-17 21:02
对pnp设备,pid和vid应该是要的.但至于硬件的所有细节,也不是都要知道的,比如键盘和鼠标之类的东东,都是标准的,应该不需要知道.
|
|
|
11楼#
发布于:2001-05-18 08:47
现在问题是.我们现在开发的一块板子,因为FPGA的code问题.明明是一块网卡,code却写成一块声卡.
那我们就不管他是什么玩艺了,load上我们的驱动就算达到目的了.现在工作完好.从系统列表里面看.系统认他为一个问号.而我们的驱动被系统认为是个不占资源的软驱动.但是,资源我们的确占用了.注册表的没写的干活.功能照样实现啦!哈哈. |
|
|
12楼#
发布于:2001-05-18 08:57
可能会出现一些意想不到的问题吧 |
|
|