PfCreateInterface返回错误120(未实现)

PfCreateInterface returns error 120 (not implemented)

本文关键字:实现 返回 错误 PfCreateInterface      更新时间:2023-10-16

我需要为Windows创建一个简单的IP过滤程序;然而,我在使相关的API调用工作时遇到了问题。下面是一个演示PfCreateInterface如何失败的小示例。它正在返回系统错误代码ERROR_CALL_NOT_IMPLEMENTED120。我正在Windows10上运行这个程序。

#include <windows.h>
#include <Iphlpapi.h>
#include <Fltdefs.h>
#include <iostream>
#pragma comment(lib, "Iphlpapi.lib")
int main()
{
INTERFACE_HANDLE hInterface;
PFFORWARD_ACTION action = PF_ACTION_FORWARD;
DWORD errorCode = PfCreateInterface(0,
action,
action,
FALSE,
TRUE,
&hInterface);
std::cout << "errorCode = " << errorCode << std::endl;    
}

有人能解释一下它为什么失败吗?如果我不能在Windows 10上使用它,你知道什么是替代的API吗?

微软的文档非常清晰:

PfCreateInterface可用于列出的操作系统在"要求"部分。

"要求"部分中列出的Windows版本是Windows Server 2003或Windows 2000 Server。

所以这个API调用本质上已经过时了。文档建议使用Windows筛选平台管理功能。