Поделиться через


Функция ZwTerminateProcess (ntddk.h)

Подпрограмма ZwTerminateProcess завершает процесс и все его потоки.

Синтаксис

NTSYSAPI NTSTATUS ZwTerminateProcess(
  [in, optional] HANDLE   ProcessHandle,
  [in]           NTSTATUS ExitStatus
);

Параметры

[in, optional] ProcessHandle

Дескриптор объекта процесса, который представляет процесс, который должен быть завершен.

[in] ExitStatus

Значение NTSTATUS, используемое операционной системой в качестве конечного состояния процесса и каждого из его потоков.

Возвращаемое значение

ZwTerminateProcess возвращает STATUS_SUCCESS, если операция выполнена успешно. К дополнительным возвращаемым значениям относятся:

Код возврата Описание
STATUS_OBJECT_TYPE_MISMATCH Указанный дескриптор не является дескриптором процесса.
STATUS_INVALID_HANDLE Указанный дескриптор недопустим.
STATUS_ACCESS_DENIED Драйвер не может получить доступ к указанному объекту процесса.
STATUS_PROCESS_IS_TERMINATING Указанный процесс уже завершается.

Если вызывающий объект указывает текущий процесс в параметре ProcessHandle , ZwTerminateProcess не возвращает.

Комментарии

Чтобы получить дескриптор процесса, который драйвер может указать для параметра ProcessHandle , драйвер может вызвать ZwOpenProcess. Дескриптор должен быть дескриптором ядра, который может быть доступен только в режиме ядра. Дескриптор — это дескриптор ядра, если он создан с флагом OBJ_KERNEL_HANDLE. Дополнительные сведения см. в разделе InitializeObjectAttributes.

Драйверы не должны указывать текущий процесс, если ресурсы не были освобождены из стека ядра, так как операционная система не раскроет стек ядра для вызывающего потока.

Если вызов этой функции происходит в пользовательском режиме, следует использовать имя NtTerminateProcess вместо ZwTerminateProcess.

Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы собственных системных служб Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями процедуры NtXxx и ZwXxx см. в разделе Использование версий Nt и Zw для процедур собственных системных служб.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntddk.h (включая Ntddk.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

См. также раздел

Использование версий Nt и Zw собственных процедур системных служб

ZwOpenProcess