- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试执行 SetIpInterfaceEntry功能,但我总是得到 ERROR_INVALID_PARAMETER
结果。我想更改哪个确切参数并不重要,因为即使我不更改任何内容,我也会收到此错误。这是 C++ 代码示例,它没有任何更改,但输出始终相同:
// Initialize MIB_IPINTERFACE_ROW with actual InterfaceLuid:
auto row = MIB_IPINTERFACE_ROW{ AF_INET, 1689399632855040 };
auto result = GetIpInterfaceEntry(&row);
// Just to confirm GetIpInterfaceEntry success print result and InterfaceIndex:
std::cout << "GetIpInterfaceEntry result: " << result << "; InterfaceIndex: " << row.InterfaceIndex << std::endl;
// Try to execute SetIpInterfaceEntry, without any change:
result = SetIpInterfaceEntry(&row);
// Result is always ERROR_INVALID_PARAMETER (87):
std::cout << "SetIpInterfaceEntry result: " << result << std::endl;
这是上一个片段的输出:
GetIpInterfaceEntry result: 0; InterfaceIndex: 13
SetIpInterfaceEntry result: 87
根据 the doc ,ERROR_INVALID_PARAMETER
的可能原因是:
An invalid parameter was passed to the function. This error is returned if a
NULL
pointer is passed in the Row parameter, the Family member of theMIB_IPINTERFACE_ROW
pointed to by the Row parameter was not specified asAF_INET
orAF_INET6
, or both theInterfaceLuid
orInterfaceIndex
members of theMIB_IPINTERFACE_ROW
pointed to by the Row parameter were unspecified.
在我的情况下,这两个都不是真的(我刚刚得到实际的结构)。
我的问题很明显:我做错了什么?该方法可以调用哪种接口(interface)有限制吗? (我调用实体店。)还有其他建议吗?
谢谢!
更新:我忘了说,如果你想执行这段代码,你应该:
#include <winsock2.h>
#include <netioapi.h>
同时链接 iphlpapi.lib
。
最佳答案
解决了,感谢我的同事...
原因是在我的例子中 row.SitePrefixLength
字段最初设置为 64
,根据 MIB_IPINTERFACE_ROW doc page,这是一个非法值:
For an IPv4 address, any value greater than 32 is an illegal value.
只要我在 SetIpInterfaceEntry 之前插入以下行调用,一切正常:
row.SitePrefixLength = 0;
虽然解决了问题,但是还有几个 Unresolved 问题:
0
就是答案,但我不确定。但首先我应该弄清楚 SitePrefixLength
字段/参数的用途是什么。 :)
更新:我刚刚找到了我剩下的第二个问题的答案 - 它在 the same doc page 中一直(因为我没有阅读所有内容而感到羞耻)。所以答案是:
For IPv4, the
SitePrefixLength
member must be set to 0.
关于c++ - SetIpInterfaceEntry 返回 ERROR_INVALID_PARAMETER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54857292/
我正在尝试通过 wifi 连接将数据发送到接收器以进行实验。我设法使用适用于 wifi 的 Windows API Native 将卡连接到接收器。 我将卡的 GUID 存储在 pIfInfo 指针
我正在尝试使用 ReadFile 函数。这是我的代码: #define BUFFERSIZE 5 int main(int argc, char* argv[]) { OVERLAPPED o
我正在尝试执行 SetIpInterfaceEntry功能,但我总是得到 ERROR_INVALID_PARAMETER 结果。我想更改哪个确切参数并不重要,因为即使我不更改任何内容,我也会收到此错误
我使用 visual studio 2008 service pack1(9.0.30729.1)、windows 7 professional 64 位和 8 GB 内存运行我的应用程序 我的应用程
我的目标是从集群中获取文件名。为此,我使用函数 FSCTL_LOOKUP_STREAM_FROM_CLUSTER。使用它时,我收到错误 87,根据 MSDN,它代表 ERROR_INVALID_PAR
我正在尝试获取 betfair API使用 Windows API。 我无法尝试使用以下代码登录(用户名和密码已更改)。 char *headers = "X-Application: MakJhSA
在尝试读取和获取事件日志中的事件数时,出现错误 87。 #include #include #include #define PROVIDER_NAME "System" void wmain(
Windows 嵌入式紧凑型。 Trying to send and receive a message with MsgQueue. 看起来写入工作正常但读取给出了不正确的参数错误。 知道缺少什么吗
CryptHashData ( https://msdn.microsoft.com/en-us/library/windows/desktop/aa380202(v=vs.85).aspx) 一直返
重现我的问题的示例代码: #include #include int main() { using namespace std; HANDLE hdl = CreateFile("test
此代码在 Windows 7 上启动时完全没问题: HANDLE hVol = CreateFile(L"\\\\.\\c:", GENERIC_WRITE | GENERIC_READ,
我为 NtWriteFile 做了一个简单的包装,但我遇到了来自 NtWriteFile 的错误。这是我的代码: BOOL WINAPI WriteFile(HANDLE hFile, PVOID l
DnsQueryConfig的文档在这里: https://docs.microsoft.com/en-us/windows/win32/api/windns/nf-windns-dnsqueryco
我一直在开发一个使用 winapi 获取管理员组成员的应用程序。为此,我使用了 NetLocalGroupGetMembers 方法。我的问题是当我尝试释放缓冲区的堆空间时,我从 NetApiBuff
我的程序创建了一个邮槽,但是当我调用 ReadFile 时,我得到了 ERROR_INVALID_PARAMETER。 参数不对怎么办? 程序代码: SECURITY_DESCRIPTOR sd;
我在调用 AttachThreadInput() 时得到一个 ERROR_INVALID_PARAMETER 错误代码。这是代码块: HWND hwnd = MYFINDWINDOW::FindWin
我正在尝试使用 LsaCallAuthenticationPackage 从缓存中清除特定票证。我总是在包状态中得到 ERROR_INVALID_PARAMETER 87。可能是什么原因?这是我的
我在下面编写了这段代码,它在 code::blocks 下运行良好,使用 mingw gcc 4.7 进行编译。从那以后,我决定开始使用 Visual Studio 2013 Express。现在调用
我正在调用 Windows 事件跟踪 StartTrace功能: StartTrace(sessionHandle, KERNEL_LOGGER_NAME, sessionProperties); 失
我正在尝试使用 EvtQuery 读取 Windows 事件日志和 winapi crate . 我收到系统错误 87 - ERROR_INVALID_PARAMETER fn to_vec(str:
我是一名优秀的程序员,十分优秀!