我正在尝试理解Windows 10中引入的进程安全缓解策略。说,
PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY
我认为在使用错误句柄时应该引发异常。所以我要这样测试:
bool bEnableIt = true; //false
BOOL bR;
PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY pmshcp = {0};
pmshcp.RaiseExceptionOnInvalidHandleReference = bEnableIt;
pmshcp.HandleExceptionsPermanentlyEnabled = bEnableIt;
bR = ::SetProcessMitigationPolicy(ProcessStrictHandleCheckPolicy, &pmshcp, sizeof(pmshcp));
HANDLE hF = (HANDLE)0x1111;
::CloseHandle(hF); //Fake handle
hF = ::CreateFile(L"C:\\Windows\\System32\\notepad.exe", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
::CloseHandle(hF);
::CloseHandle(hF); //Double closing
但在这两种情况下,我是启用还是禁用它,还是不调用
SetProcessMitigationPolicy
总之,我两个都有例外
CloseHandle
那么我在这里遗漏了什么?