Как получить адрес рутины WFP динамически? - PullRequest
0 голосов
/ 10 сентября 2018

Я пишу драйвер сетевого фильтра Windows для WinXP (с использованием технологии TDI) и win7 (с использованием технологии WFP) , и я надеюсь, что драйвер совместим с WinXP и Win7.

Поскольку WFP доступен только из Vista и более поздних версий, поэтому мне нужно получить процедуру WFP (например: FwpmEngineOpen0 , FwpsCalloutRegister0 ) адреса динамически, или драйвер НЕ может быть загружен под WinXP.

Но когда я использую MmGetSystemRoutineAddress , чтобы попытаться получить FwpmEngineOpen0 подпрограммуадрес, подпрограмма всегда возвращает 0 в Win7.

В MSDN сказано: " MmGetSystemRoutineAddress ... Драйверы могут использовать эту подпрограмму, чтобы определить, доступна ли подпрограмма в определенной версии Windows. Она может толькоиспользоваться для подпрограмм, экспортируемых ядром или HAL, а не для любой определенной драйвером подпрограммы."

Итак, MmGetSystemRoutineAddress НЕ МОЖЕТ получить WFP обычный адрес?

Как я могу решить эту проблему, если я хочу динамически получать адреса WFP ?

Спасибо за любую помощь, которая может быть оказана!

...