Чтение NDIS miniport statisti c значение - PullRequest
1 голос
/ 15 января 2020

Драйвер минипорта NDIS 6.0 предоставляет статистику c счетчиков, предоставляемых функцией MiniportQueryInformation . Запрос информации передается в параметре NdisRequest. Этот фактический запрос определяется членом Oid из NdisRequest.

. Я хочу запросить часть этой информации в процессе приложения, например, значение OID_802_3_RCV_OVERRUN. Драйвер минипорта работает в контексте NDIS в процессе ядра. Обычно только драйвер протокола может вызывать функции, вызывающие вызов функций минипорта.

Функции IP Helper API включают функции GetIfEntry и GetIFEntry2 для получения информации о сетевой интерфейс. Результатом является структура MIB_IF_ROW2, которая включает в себя счетчики отправленных и полученных данных. Но он включает только (совокупный) член InErrors, а не счетчик для запрошенного Oid OID_802_3_RCV_OVERRUN.

Как я могу передать запрос информации через NDIS и получить нужную информацию от драйвера минипорта?

1 Ответ

0 голосов
/ 21 января 2020

Во-первых, подход Legacy заключается в том, чтобы сначала написать драйвер протокола, сделать запрос к драйверу протокола через Application IOCTL, выполнить запрос OID через NdisRequest от ядра и передать результат в приложение. но написание драйверов протоколов будет непростой задачей.

Во-вторых, вы можете использовать интерфейс WMI для запроса OID. Пожалуйста, обратитесь к ссылке ниже.

https://docs.microsoft.com/en-us/archive/blogs/ndis/mapping-from-ndis-oids-to-wmi-classes

Однако, даже при использовании этих методов, имейте в виду, что в зависимости от поставщика сетевого адаптера драйвер Miniport может не поддерживает OID, поэтому вы не получите желаемых результатов.

...