给出一个解决方法
把PCI_COMMON_CONFIG的第一个成员:(wdm.h的32015行)
PCI_COMMON_HEADER DUMMYSTRUCTNAME
修改为
PCI_COMMON_HEADER PCIHeader//
////////////////////////////////////////////////////////////////////////////////////
DisplayCfgSpace(3, 0, 0) // 3,0,0 需要看下设备管理器的器纤漏件属性观察得到 第一个是总线迹核号,第二个是设备号码,第三个是功能号,可以在 evtPreparaHardware这个函数的末尾调用获取配置空间的信息~
///////////////////////////////////////////////////////////////////////////////////
测试实现代码:
#define PCI_CONFIG_ADDRESS (PULONG)(0xCF8)
#define PCI_CONFIG_DATA (PULONG)(0xCFC)
#define KdrPrint DbgPrint
void DisplayCfgSpace(int bus, int dev, int fn){
unsigned long dwAddr, dwData
PCI_COMMON_CONFIG PciConfig
PCI_SLOT_NUMBER SlotNumber
// PCI_CAPABILITIES_HEADER CapabilityHeader
// UCHAR CapabilityOffset
SlotNumber.u.AsULONG = 0
SlotNumber.u.bits.DeviceNumber = dev// 设置设备号
SlotNumber.u.bits.FunctionNumber = fn// 设置姿竖掘功能号
dwAddr = 0x80000000 |( bus <<16 ) | ( SlotNumber.u.AsULONG <<8 )
// 得到配置空间
for (int i = 0i <0x100i += 4){/* 256 字节的 PCI 配置空间 */
#if 0
SetPortVal ( PCI_CONFIG_ADDRESS, dwAddr | i, 4 )
GetPortVal ( PCI_CONFIG_DATA , &dwData , 4 )
#endif
WRITE_PORT_ULONG(PCI_CONFIG_ADDRESS, dwAddr | i)
dwData = READ_PORT_ULONG(PCI_CONFIG_DATA)
memcpy (((PUCHAR )&PciConfig) + i,&dwData,4)
}
if (PciConfig.PCIHeader.VendorID == 0xFFFF){
KdrPrint("Read cfg space err!\n")
return// 无效设备
}
else
{
KdrPrint("bus: %d dev : %d fn : %d \n",bus, dev, fn)
KdrPrint("%x %x \n", PciConfig.PCIHeader.VendorID, PciConfig.PCIHeader.DeviceID)
}
}
///////////////////////////////////////////////////////////////////////////////////
嗨空简!请您尝试更换一个USB接口或重新安装电脑系统试试。
更详细如亏键的描述问题有助于网友理解你遇到的麻烦,帮助你更准确的解决问题。谢谢你支渣巧持小米手机!
WDF01000.SYS是系统文卜档件,跟驱动有关系楼主去重新安装Win7,如果还坦弊旦一直有这让扰个问题,或者安装不了,再看下面的原因的解决方法:
原因:
WIN7跟部分AHCI 也就是NCQ技术不兼容 网上已经有很多案例
解决方法:
进BIOS关闭 AHCI 改为IDE模式 再安装Win7一切正常了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)