Как динамически получить стандартный адрес WFP?

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

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

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

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

Итак, MmGetSystemRoutineAddress НЕ может получить адрес обычной программы WFP?

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

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

0 ответов

Другие вопросы по тегам