我正在为 WinXP(使用TDI技术)和 win7(使用WFP技术)编写Windows网络过滤器驱动程序,希望该驱动程序与WinXP和Win7。
因为 WFP 仅在Vista和更高版本中可用,所以,我必须获取 WFP 例程(例如: FwpmEngineOpen0 , FwpsCalloutRegister0 )动态地址,否则无法在WinXP下加载驱动程序。
但是当我使用 MmGetSystemRoutineAddress 尝试获取 FwpmEngineOpen0 例程地址时,该例程在Win7下始终返回0。
MSDN说:“ MmGetSystemRoutineAddress ...驱动程序可以使用此例程来确定特定版本的Windows上是否有该例程。该例程只能用于内核或HAL导出的例程,而不能用于任何驱动程序定义的例程。“
那么, MmGetSystemRoutineAddress 无法获取 WFP 例程地址吗?
如果要动态获取 WFP 例程地址,该如何解决?
感谢您能提供的任何帮助!