2

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

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

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

我没有从 NDIS 包装层收到任何调试消息。

OALPCICfgRead在我的 OAL 层中添加了打印。我也没有得到这个打印。

我正在调用的函数是:

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

这里 ulResult 为零。

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

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

如果有人帮助我调试这个问题会很有帮助。

4

1 回答 1

1

问题出在 WEC7 的CEDDK.dll. 不支持 PCI 总线HalGetBusDataByOffsetARM inHalSetBusDataByOffset功能(它们内置了对x86的支持)。DDK_BUS.lib

当我从公共代码中克隆此驱动程序并添加此支持时,该功能现在运行良好。

这似乎在MSDN中没有记录。

于 2016-01-12T03:16:43.417 回答