С call terminate
мы можем передать состояние выхода, например, call terminate '-1073741510'
. 32-битное значение состояния должно быть подписано, а отрицательное значение должно быть заключено в кавычки. Последнее значение - STATUS_CONTROL_C_EXIT
(0xC000013A) как десятичное значение со знаком. Статус выхода по умолчанию равен 0, это то же значение, которое используется для глагола delete
.
С точки зрения реализации служба WMI запускает экземпляр хоста поставщика WMI (wmiprvse.exe) для обработки запроса. Относительно легко подключить отладчик для проверки этого, поскольку хост-процесс провайдера повторно используется в течение нескольких минут. Класс Win32_Process
реализован в модуле провайдера Win32 WMI (cimwin32.dll), который содержит класс Process
с DeleteInstance
и ExecTerminate
, вызываемыми соответственно для delete
и call terminate
. Оба метода в конечном счете вызывают WINAPI TerminateProcess
.