【问题标题】:PfCreateInterface returns error 120 (not implemented)PfCreateInterface 返回错误 120(未实现)
【发布时间】:2020-02-21 20:46:05
【问题描述】:

我需要为 Windows 创建一个简单的 IP 过滤程序;但是,我无法让相关的 API 调用正常工作。下面是一个小例子,展示了PfCreateInterface 是如何失败的。它返回120,这是系统错误代码ERROR_CALL_NOT_IMPLEMENTED。我在 Windows 10 上运行该程序。

#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 是什么吗?

【问题讨论】:

    标签: c++ c windows winapi ip


    【解决方案1】:

    Microsoft's documentation 很清楚:

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

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

    所以这个 API 调用基本上已经过时了。文档建议改用the Windows Filtering Platform management functions。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 2018-05-26
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      相关资源
      最近更新 更多