阅读:832回复:0
读配置空间为什么出错
一个8478的pci接口网络设备,8478本身提供pci接口同时也有网络功能.以前nt下的驱动程序可以正常运行,现在想把它移植到win2k下发现很多问题.
本来是一个设备,win2k找到两个:一个是网卡,另一个是pci桥.可是只有一个驱动程序,我把它当成网卡,inf文件也是按照网卡写的,安装失败,原因是驱动程序把它当成一个拥有两个功能的设备,可是在读配置空间的时候却只能读出网卡的,按理说在读第二个功能设备的时候应该读出pci桥设备的配置空间.以下是那段代码两次取出的居然是同一配置空间的数据!!!哪位高手看看帮忙看看是怎么回事. ThisAdapter->SlotNumber.u.bits.FunctionNumber = 0; Status = NdisMPciAssignResources( ThisAdapter->MiniportAdapterHandle, ThisAdapter->SlotNumber.u.AsULONG, &ThisAdapter->AssignedResources); BufferSize=NdisReadPciSlotInformation( ThisAdapter->MiniportAdapterHandle, ThisAdapter->SlotNumber.u.AsULONG, 0, (PVOID)&(ThisAdapter->PciFunctionZero), sizeof(PCI_CONFIG_SPACE0)); ...... ThisAdapter->SlotNumber.u.bits.FunctionNumber=1; Status = NdisMPciAssignResources( ThisAdapter->MiniportAdapterHandle, ThisAdapter->SlotNumber.u.AsULONG, &ThisAdapter->SecondaryAssignedResources); BufferSize=NdisReadPciSlotInformation( ThisAdapter->MiniportAdapterHandle, ThisAdapter->SlotNumber.u.AsULONG, 0, (PVOID)&(ThisAdapter->PciFunctionZero), sizeof(PCI_CONFIG_SPACE1)); |
|
|