Неисходящее сообщение в отладчике при отладке драйвера ядра - PullRequest
0 голосов
/ 04 апреля 2019

Я отлаживал программное обеспечение для карты PCI-Express, разработанное нашей компанией. Иногда программное обеспечение начинает «зависать», собирает меньше образцов или даже на некоторое время прекращает сбор. (около полсекунды, не постоянное значение)

У нас есть драйвер режима ядра, который функционирует между программным обеспечением и картой PCI. Я начал изучать драйвер, и когда сборка останавливается, я вижу странное сообщение в отладчике (непосредственное окно VS отладчика), которое я там не поместил. Он также присутствует не во всем исходном коде нашего драйвера, поэтому он должен быть отправлен некоторыми средствами ядра Windows. Сообщение:

CORE EH: для устройства 0 запрос 8EE6EA58 [0x35] тайм-аут в слоте (0x6) при активном = 0x0.

Я не смог найти ничего полезного в Google. Кто-нибудь когда-нибудь сталкивался с этим сообщением об ошибке? Мне нужно выяснить, что это значит и что вызывает.

На карте PCI-E используется микросхема PLX8311, которая может иметь какое-то отношение к проблеме, поскольку предыдущая версия карты с другим чипом (PLX9056) не создавала эту проблему. Я не уверен, однако, поэтому я не размещаю это на их форумах.

Не уверен, что полезно, но: Я использую этот код для отправки сообщений из ядра:

#define LocalDebugPrint(l, ...) DbgPrintEx(DPFLTR_IHVDRIVER_ID, l, __VA_ARGS__)

Дополнительный вопрос: есть ли способ получить имя компонента (здесь DPFLTR_IHVDRIVER_ID) в непосредственном окне отладчика Visual Studio?

...