NdisMGetBusData函数返回零

时间:2015-12-11 08:29:43

标签: windows-ce device-driver pci-e ndis miniport

我正尝试在WEC7(Windows Embedded Compact 7)上为PCIe网卡开发基于NDIS6.0的迷你端口驱动程序。

在MPInitialize函数中,当我尝试使用函数NdisMGetBusData读取PCI配置空间时,它返回零。

从文档中,它应该读取读取的字节数。文档中没有更多信息。

我没有从NDIS包装层获得任何调试消息。

我已在我的OAL图层OALPCICfgRead中添加了打印件。我也没有得到这份印刷品。

我打电话的功能是:

ulResult = NdisMGetBusData(
                       Adapter->AdapterHandle,
                       PCI_WHICHSPACE_CONFIG,
                       FIELD_OFFSET(PCI_COMMON_CONFIG, VendorID),
                       buffer,
                       PCI_COMMON_HDR_LENGTH );

这里ulResult为零。

没有从NDIS获得任何额外的调试打印。

PCI控制器低级功能中的打印也没有出现。

如果有人帮我调试这个问题,它会有所帮助。

1 个答案:

答案 0 :(得分:1)

问题出在WEC7' CEDDK.dllHalGetBusDataByOffset中的 ARM 不支持PCI总线HalSetBusDataByOffsetDDK_BUS.lib功能(它们内置支持 x86

当我从公共代码克隆此驱动程序并添加此支持时,功能现在正常工作。

这似乎在 MSDN 中没有记录。