阅读:1641回复:2
Miniport Driver获取资源问题。
我想采用如下方法获取资源:
用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值中的一个。这肯定是不正常的。 哪位朋友给指点一下吧,困惑死了。 |
|
沙发#
发布于:2002-03-04 09:27
在调用NdisMPciAssignResources之前必须先调用NdisSetAttributes。而且SlotNumber1意味着是个多功能设备么?
|
|
|
板凳#
发布于:2002-03-05 14:04
在调用NdisMPciAssignResources之前必须先调用NdisSetAttributes。而且SlotNumber1意味着是个多功能设备么? 我基本搞定了。还是变量有问题,由于变量很多,有些没有初始化,而系统对这个好像特别严格,跟应用程序不同,所以导致死机。 不过您说的也给了我一些提示。给您一半分吧,呵呵。slotnumber1是我随便设的一个变量,因为那个函数中这个参数是系统reserved,填什么都行。 |
|