Я использую TerminateProcess (), чтобы убить другой процесс (я знаю, что это не лучший способ, но это уже существующий код, который уже развернут).В большинстве случаев все работает, как и ожидалось, но на двух конкретных машинах процесс не прерывается, хотя TerminateProcess () возвращает ненулевое значение, что означает успех.
Мы пытались убить процесс издиспетчер задач, и он был убит.
В документации говорится, что процесс завершится только после того, как все операции ввода-вывода завершены или отменены, поэтому мы подумали, что, возможно, есть какая-то ожидающая операция ввода-вывода, но если это так,Диспетчер задач также не сможет завершить процесс.
Процесс, который вызывает TerminateProcess (), выполняется под системной учетной записью, поэтому мы не считаем, что это проблема с разрешениями (также, если это была проблема с разрешениями)мы ожидаем, что функция возвратит ACCESS_DENIED).
Процесс, который мы пытаемся убить, выполняется как начальная программа в сеансе RDP.
Кто-нибудь имеет представление о том, что может вызватьэто поведение?Или, может быть, предложить способы устранения неполадок?Мы попробовали Process Monitor и Process Explorer, но ничего не нашли.