Как динамически получить стандартный адрес 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?
Спасибо за любую помощь, которая может быть оказана!