Функция NdisMGetBusData возвращает ноль
Я пытаюсь развиваться NDIS6.0
драйвер мини-порта на основе WEC7 (Windows Embedded Compact 7) для сетевой карты PCIe.
В функции MPInitialize, когда я пытаюсь прочитать конфигурационное пространство PCI, используя функцию NdisMGetBusData, он возвращает ноль.
Из документации следует прочитать количество прочитанных байтов. Больше нет информации, доступной в документации.
Я не получаю никакого сообщения отладки от слоя оболочки NDIS.
Я добавил печать в моем OALPCICfgRead
в моем слое OAL. Я не получаю этот отпечаток также.
Функция, которую я вызываю:
ulResult = NdisMGetBusData(
Adapter->AdapterHandle,
PCI_WHICHSPACE_CONFIG,
FIELD_OFFSET(PCI_COMMON_CONFIG, VendorID),
buffer,
PCI_COMMON_HDR_LENGTH );
Здесь ulResult равен нулю.
Не получать никаких дополнительных отладочных отпечатков от NDIS.
Отпечатки в контроллере нижнего уровня также не отображаются.
Будет полезно, если кто-нибудь поможет мне отладить эту проблему.
1 ответ
Проблема в WEC7 CEDDK.dll
, Не было поддержки шины PCI HalGetBusDataByOffset
а также HalSetBusDataByOffset
функции для ARM в DDK_BUS.lib
(они встроили поддержку для x86).
Когда я клонировал этот драйвер из открытого кода и добавил эту поддержку, функциональность теперь работает нормально.
Это кажется недокументированным в MSDN.