Я пытаюсь установить безопасность PROCESS_TERMINATE. Это код:
CreateProcess("C:\\ADP\\SQLBase\\dbntsrv.exe", NULL, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, "C:\\ADP\\SQLBase", &si, &pi);
if(SetSecurityInfo(pi.hProcess, SE_KERNEL_OBJECT, PROCESS_TERMINATE, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
{
MessageBox(NULL, "process_terminate granted", NULL, MB_OK);
}
else
{
MessageBox(NULL, "process_terminate not granted", NULL, MB_OK);
}
//--------------------- Permission to query for info to use GetExitCode -------------------------
if(SetSecurityInfo(pi.hProcess, SE_KERNEL_OBJECT, PROCESS_QUERY_INFORMATION, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
{
MessageBox(NULL, "process_query_information granted", NULL, MB_OK);
}
else
{
MessageBox(NULL, "process_query_information not granted", NULL, MB_OK);
}
LPDWORD lpExitCode;
GetExitCodeProcess(pi.hProcess, lpExitCode);
Здесь SetSecurityInfo для PROCESS_TERMINATE завершается неудачно, и я получаю Unhandled Exception..(KERNEL32.dll):Access Violation
для
GetExitCodeProcess(pi.hProcess, lpExitCode);
Почему это происходит? Спасибо