Есть сетевой драйвер режима ядра, нужно узнать сколько килобит в секунду может отправлять нижестоящее устройство. Через OID не проходит, так как драйвер сетевого адаптера может эмулировать, к примеру, Ethernet 100 мегабит, а на самом деле управлять кабельным модемом 128 килобит, и т.п. Наверное, это нужно передать много пакетов фиксированной длины в очередь на отправку, а потом раз в секунду считать количество подтверждений об отправленных пакетах? У кого какие мысли по данной теме?
Методика измерения полосы пропускания в режиме ядра принципиально не отличается от таковых измерений в юзермоде. А конкретная реализация зависит от того, на каком уровне делается измерение (NDIS, TDI). В случае TDI нужно просто посылать пакеты в синхронном режиме (синхронизируясь по IoConpletionRoutine которую можно установить в TdiBuildSend) и считать число отосланых пакетов в секунду. В случае же NDIS все немного усложняется, так как нужно еще позаботиться о приеме ответа (в этом случае я рекомендовал бы использовать большие ping пакеты).