【问题标题】:NdisMGetBusData function returns zeroNdisMGetBusData 函数返回零
【发布时间】:2016-03-17 02:29:32
【问题描述】:

我正在尝试在 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 控制器中的打印底层功能也没有出现。

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

【问题讨论】:

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


    【解决方案1】:

    问题出在 WEC7 的 CEDDK.dll 中。 DDK_BUS.lib 中的 ARM 不支持 PCI 总线 HalGetBusDataByOffsetHalSetBusDataByOffset 函数(它们内置了对 x86 的支持)。

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

    这似乎在 MSDN 中没有记录。

    【讨论】:

      猜你喜欢
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多