opera1
驱动牛犊
驱动牛犊
  • 注册日期2002-01-29
  • 最后登录2003-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1641回复:2

Miniport Driver获取资源问题。

楼主#
更多 发布于:2002-03-03 21:30
我想采用如下方法获取资源:
用NdisReadPciSlotInformation获得vendorID和deviceID,从而判断出来是不是我的卡。然后用NdisMPciAssignResources得到Resource_List,存在变量AssignedResources中。然后遍历这个结构得到各种资源。其中AssignedResources是PCM_PARTIAL_RESOURCE_LIST类型,DDK中提到了这个类型与PNDIS_RESOURCE_LIST是完全相同的。
但我现在出的问题就是进行到:
   Status = NdisMPciAssignResources( MiniportAdapterHandle,
SlotNumber1,&AssignedResources);得到AssignedResources后,这个变量不能用。我在后面加上一句    ResourcesTemp = AssignedResources;就死机,ResourcesTemp和AssignedResources类型完全相同。
现在就特别困惑,这是DDK中的标准方法啊。据说当AssignedResources结构中有空值时,赋值语句就有可能会导致死机,但我用softice跟进去看了一下,发现都有值,不过只有3值:E500A000,3,1.这3个值循环着填满了整个结构。包括什么中断号等等,都是这3值中的一个。这肯定是不正常的。
哪位朋友给指点一下吧,困惑死了。
drinkeryj
驱动老牛
驱动老牛
  • 注册日期2001-03-23
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-03-04 09:27
在调用NdisMPciAssignResources之前必须先调用NdisSetAttributes。而且SlotNumber1意味着是个多功能设备么?
以后怎么办? [img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
opera1
驱动牛犊
驱动牛犊
  • 注册日期2002-01-29
  • 最后登录2003-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-05 14:04
在调用NdisMPciAssignResources之前必须先调用NdisSetAttributes。而且SlotNumber1意味着是个多功能设备么?

我基本搞定了。还是变量有问题,由于变量很多,有些没有初始化,而系统对这个好像特别严格,跟应用程序不同,所以导致死机。
不过您说的也给了我一些提示。给您一半分吧,呵呵。slotnumber1是我随便设的一个变量,因为那个函数中这个参数是系统reserved,填什么都行。
游客

返回顶部