Функция 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 собственных процедур системных служб