阅读:1283回复:10
疑问:在2000下的资源的接接收和转换工作全部由PnP管理器来完成,WDM驱动程序需要做的仅是访问设备启动IRP的Parameters结构就可以获得资源了。。
由于不许要我去寻找设备,那我怎么知道我的设备的资源到底是那一个呢,并且不需要知道PCI芯片的设备号和厂商号。。。我怎么把我的设备和资源对应起来...谢谢
|
|
|
沙发#
发布于:2003-01-06 16:15
嘻嘻!我想是不是在安装时选好了相应的驱动程序就可以了啊,就表示对应了相应的资源。。。
|
|
|
板凳#
发布于:2003-01-08 10:15
PNP_START已经提供了详细的资源描述。一般来说足够用了。
你自己想去做的话,我想大致有两种模式:一种老模式,CF8,访问PCI配置空间。另一种是生成IRP包,让M$的PCI BUS DRIVER替你干活。 |
|
|
地板#
发布于:2003-01-08 10:51
嘻嘻!我想是不是在安装时选好了相应的驱动程序就可以了啊,就表示对应了相应的资源。。。 是的,安装时INF文件已经指明本DRIVER用于某个指定ID号的设备。 |
|
|
地下室#
发布于:2003-01-08 11:14
PNP_START已经提供了详细的资源描述。一般来说足够用了。 生成IRP包是怎么作到的啊?就是事先定义一些static数组吗? |
|
|
5楼#
发布于:2003-01-08 21:43
把DDK每一行都看完,就不会有这样的问题了。老哥,你再这么问我就吐血了。
|
|
6楼#
发布于:2003-01-09 09:34
呵呵,yyhabc,谢谢你
好的,我听你的,可是我要是把DDK看完得多久啊,还有,我是想定制自己的IRP数组中的minorfunction,然后在这个数组中找到对应的IRP消息 刚才Sunbeam也说了,另一种是生成IRP包,让M$的PCI BUS DRIVER替你干活,我是想知道这样是怎样作成的. |
|
|
7楼#
发布于:2003-01-10 10:48
你不妨在驱动中直接写端口,更容易一些。
|
|
8楼#
发布于:2003-01-10 16:00
yyhabc
恩,也是,我只是对定制自己的IRP包不太明白,呵呵 |
|
|
9楼#
发布于:2003-01-10 16:11
老哥,IRP是驱动的根本,也是windows的根本。看来你不了解windows本身的数据结构。没关系,慢慢来,千万别学傻了,哈哈哈哈。
|
|
10楼#
发布于:2003-01-10 17:18
hehe!那你看看这个吧,看看它是用来作什么用的,放在pnp的开头定义的,这些应该都是windows的自带的IRP吧,但是为什么放在前面专门的给出来啊,
static PSTR pnpMinorCodes[] = { \"IRP_MN_START_DEVICE\", \"IRP_MN_QUERY_REMOVE_DEVICE\", \"IRP_MN_REMOVE_DEVICE\", \"IRP_MN_CANCEL_REMOVE_DEVICE\", \"IRP_MN_STOP_DEVICE\", \"IRP_MN_QUERY_STOP_DEVICE\", \"IRP_MN_CANCEL_STOP_DEVICE\", \"IRP_MN_QUERY_DEVICE_RELATIONS\", \"IRP_MN_QUERY_INTERFACE\", \"IRP_MN_QUERY_CAPABILITIES\", \"IRP_MN_QUERY_RESOURCES\", \"IRP_MN_QUERY_RESOURCE_REQUIREMENTS\", \"IRP_MN_QUERY_DEVICE_TEXT\", \"IRP_MN_FILTER_RESOURCE_REQUIREMENTS\", \"***** FUNCTION 0x0e\", \"IRP_MN_READ_CONFIG\", \"IRP_MN_WRITE_CONFIG\", \"IRP_MN_EJECT\", \"IRP_MN_SET_LOCK\", \"IRP_MN_QUERY_ID\", \"IRP_MN_QUERY_PNP_DEVICE_STATE\", \"IRP_MN_QUERY_BUS_INFORMATION\", \"IRP_MN_DEVICE_USAGE_NOTIFICATION\", \"IRP_MN_SURPRISE_REMOVAL\", \"IRP_MN_QUERY_LEGACY_BUS_INFORMATION\" }; [编辑 - 1/10/03 by zshuc] |
|
|