SetHandleInformation失败,错误代码为ERROR_ACCESS_DENIED(5)

时间:2017-09-17 08:07:05

标签: windows winapi windows-applications device-driver

我的代码使用CreateFile打开虚拟NIC设备。之后,我在CreateFile返回的句柄上调用SetHandleInformation,以避免泄漏子进程的句柄。问题是,SetHandleInformation失败,错误代码为5(ERROR_ACCESS_DENIED)。 以下是我打开设备并调用SetHandleInformation的代码:

handle = CreateFile(dev_name, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_OVERLAPPED,NULL);  
if (handle != INVALID_HANDLE_VALUE) {  
    if (!(SetHandleInformation(handle, HANDLE_FLAG_INHERIT, 0))) {
        printf("SetHandleInformation error, code: %u\n", GetLastError());
    }
}

我在Windows 10上观察到此故障。我的应用程序以管理员权限运行。即使在此失败之后,我也能够成功地使用句柄进行读写,这表明CreateFile工作正常。

这种失败的可能原因是什么?我找不到有关错误代码5的SetHandleInformation失败的更多信息。

0 个答案:

没有答案