Я пишу драйвер сетевого фильтра Windows для WinXP (с использованием технологии TDI) и win7 (с использованием технологии WFP) , и я надеюсь, что драйвер совместим с WinXP и Win7.
Поскольку WFP доступен только из Vista и более поздних версий, поэтому мне нужно получить процедуру WFP (например: FwpmEngineOpen0 , FwpsCalloutRegister0 ) адреса динамически, или драйвер НЕ может быть загружен под WinXP.
Но когда я использую MmGetSystemRoutineAddress , чтобы попытаться получить FwpmEngineOpen0 подпрограммуадрес, подпрограмма всегда возвращает 0 в Win7.
В MSDN сказано: " MmGetSystemRoutineAddress ... Драйверы могут использовать эту подпрограмму, чтобы определить, доступна ли подпрограмма в определенной версии Windows. Она может толькоиспользоваться для подпрограмм, экспортируемых ядром или HAL, а не для любой определенной драйвером подпрограммы."
Итак, MmGetSystemRoutineAddress НЕ МОЖЕТ получить WFP обычный адрес?
Как я могу решить эту проблему, если я хочу динамически получать адреса WFP ?
Спасибо за любую помощь, которая может быть оказана!