bluesky123
驱动牛犊
驱动牛犊
  • 注册日期2002-08-02
  • 最后登录2002-10-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1441回复:9

denizen老兄,请进来拿分

楼主#
更多 发布于:2002-08-11 09:28
denizen老兄:前几天谢谢你给我发的ISA数据采集卡的代码。小弟奉上20分,请老兄笑纳。我已把代码略略整理成VC下的工程型式,如果你要的话,我给你发过去吧。另外,我读了读代码,有几处不太明白,请多多指教:
1、这块卡是ISA的吗?我看代码支持PNP啊?难道ISA总线的设备有支持PNP的?我看了INF文件,里面有[Vqc.LogConfig1]
ConfigPriority=DESIRED、IOConfig=378-37a、IRQConfig=7,5
好象是显式分配资源吧,那它怎么会支持PNP呢?我刚学2000的驱动不久,给PNP搞的头晕眼花。你能给我详细的解释一番吗?谢谢。
2、&stack->Parameters.StartDevice.AllocatedResourcesTranslated->List[0].PartialResourceList、 &stack->Parameters.StartDevice.AllocatedResources->List[0].PartialResourceList、这两个描述子列表有什么区别?对两个的列表都要怎么用?我在NT4。0中好象只填了一个列表,上交给NT就可以了。为什么2000下要这样作呢?
3、代码中好象开了一个ExInitializeWorkItem( &dx->ConnectIntWQI, IrqConnectRoutine, dx )。使得可以动态得通过IOCTL命令来连接中断。我觉的好象没有必要呀?在StartDevice中以经连接了中断了嘛,且断开中断只发生在StopDevice、和closedevice中,那么每次中断被断开,要再使用,StartDevice必然要被调用,那么IrqConnectRoutine跟本不用执行嘛?是不是我读代码理解上有误?请老兄告之。谢谢
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-11 10:16
1.pnp与isa卡的区别主要在于资源的动态分配,而其他的驱动功能没有实质上的差别。isa卡通过inf文件分配资源,而pnp可以在系统检测到有设备插入时动态分配资源。
2.代码是直接剪贴下来的,肯定有纰漏,如果看到连续两行相同的语句,其中有一句是多余的。最好到华中bbs驱动版去看代码(我原来讲的是清华,有误)。
3.这个我到没仔细研究,实在抱歉。
Where there is a will, there is a road.
bluesky123
驱动牛犊
驱动牛犊
  • 注册日期2002-08-02
  • 最后登录2002-10-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-11 10:42
denizen老兄:你意思是不是说在INF文件中分配了资源,非PNP的ISA的卡也可以有ADDDEVICE、PNP、POWERMANAGE等函数,在代码上与WDM驱动无异?
bluesky123
驱动牛犊
驱动牛犊
  • 注册日期2002-08-02
  • 最后登录2002-10-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-11 10:43
问题2好象不是出错。DDK下的/SRC/GENERAL/PARTIO源代码也是处理两个硬件资源列表的(一个是raw,一个是translated)。好象是在raw型式下CmResourceTypePort类型还要再跟据resourceTrans->Type判断是CmResourceTypePort还是CmResourceTypeMemory。致于为甚么?就要请各位高手多多指点了。
高手指点明白后,我一定会另开一帖给20分的!
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-11 11:36
denizen老兄:你意思是不是说在INF文件中分配了资源,非PNP的ISA的卡也可以有ADDDEVICE、PNP、POWERMANAGE等函数,在代码上与WDM驱动无异?
 

对头。可以用softice跟踪,isa卡的驱动同样会调用adddevice,startdevice等函数。
Where there is a will, there is a road.
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-11 11:46
问题2好象不是出错。DDK下的/SRC/GENERAL/PARTIO源代码也是处理两个硬件资源列表的(一个是raw,一个是translated)。好象是在raw型式下CmResourceTypePort类型还要再跟据resourceTrans->Type判断是CmResourceTypePort还是CmResourceTypeMemory。致于为甚么?就要请各位高手多多指点了。
高手指点明白后,我一定会另开一帖给20分的!

哦,我看错了。
raw相对于硬件方面的资源,而translated之后使得资源变为系统可用。
Where there is a will, there is a road.
bluesky123
驱动牛犊
驱动牛犊
  • 注册日期2002-08-02
  • 最后登录2002-10-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-08-11 14:37
那么这两者如何使用呢?
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-08-11 16:02
“Use the raw resources to program the device.”
“Use the translated resources to connect the interrupt vector, map I/O space, and map memory.”

Where there is a will, there is a road.
bluesky123
驱动牛犊
驱动牛犊
  • 注册日期2002-08-02
  • 最后登录2002-10-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-08-11 19:19
我的领悟能力真是低啊!我还是没搞懂,你可不可以详细解释一下?谢谢。
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-08-11 19:46
raw resources 是系统分配给设备的资源,要初始化中断等对象要使用translated resources.
Where there is a will, there is a road.
游客

返回顶部