ZwTerminateProcess-Funktion (ntddk.h)

Die ZwTerminateProcess-Routine beendet einen Prozess und alle zugehörigen Threads.

Syntax

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

Parameter

[in, optional] ProcessHandle

Ein Handle für das Prozessobjekt, das den zu beendenden Prozess darstellt.

[in] ExitStatus

Ein NTSTATUS-Wert, den das Betriebssystem als letzte status für den Prozess und jeden seiner Threads verwendet.

Rückgabewert

ZwTerminateProcess gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Weitere Rückgabewerte sind:

Rückgabecode Beschreibung
STATUS_OBJECT_TYPE_MISMATCH Das angegebene Handle ist kein Prozesshandle.
STATUS_INVALID_HANDLE Der angegebene Handle ist ungültig.
STATUS_ACCESS_DENIED Der Treiber kann nicht auf das angegebene Prozessobjekt zugreifen.
STATUS_PROCESS_IS_TERMINATING Der angegebene Prozess wird bereits beendet.

Wenn der Aufrufer den aktuellen Prozess im Parameter ProcessHandle angibt, wird ZwTerminateProcess nicht zurückgegeben.

Hinweise

Um ein Prozesshandle abzurufen, das ein Treiber für den ProcessHandle-Parameter angeben kann, kann der Treiber ZwOpenProcess aufrufen. Das Handle muss ein Kernelhandle sein, ein Handle, auf das nur im Kernelmodus zugegriffen werden kann. Ein Handle ist ein Kernelhandle, wenn es mit dem flag OBJ_KERNEL_HANDLE erstellt wird. Weitere Informationen finden Sie unter InitializeObjectAttributes.

Treiber dürfen den aktuellen Prozess nicht angeben, wenn Ressourcen nicht aus dem Kernelstapel freigegeben wurden, da das Betriebssystem den Kernelstapel für den aufrufenden Thread nicht entlädt.

Wenn der Aufruf dieser Funktion im Benutzermodus erfolgt, sollten Sie den Namen "NtTerminateProcess" anstelle von "ZwTerminateProcess" verwenden.

Bei Aufrufen von Kernelmodustreibern können sich die NtXxx - und ZwXxx-Versionen einer Windows Native System Services-Routine anders verhalten, da sie Eingabeparameter verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ntddk.h (include Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Weitere Informationen

Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen

ZwOpenProcess