Función ZwTerminateProcess (ntddk.h)

La rutina ZwTerminateProcess finaliza un proceso y todos sus subprocesos.

Sintaxis

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

Parámetros

[in, optional] ProcessHandle

Identificador del objeto de proceso que representa el proceso que se va a finalizar.

[in] ExitStatus

Valor NTSTATUS que el sistema operativo usa como estado final para el proceso y cada uno de sus subprocesos.

Valor devuelto

ZwTerminateProcess devuelve STATUS_SUCCESS si la operación se realiza correctamente. Entre los valores devueltos adicionales se incluyen:

Código devuelto Descripción
STATUS_OBJECT_TYPE_MISMATCH El identificador especificado no es un identificador de proceso.
STATUS_INVALID_HANDLE El identificador especificado no es válido.
STATUS_ACCESS_DENIED El controlador no puede tener acceso al objeto de proceso especificado.
STATUS_PROCESS_IS_TERMINATING El proceso especificado ya está finalizando.

Si el llamador especifica el proceso actual en el parámetro ProcessHandle , ZwTerminateProcess no devuelve.

Comentarios

Para obtener un identificador de proceso que un controlador puede especificar para el parámetro ProcessHandle , el controlador puede llamar a ZwOpenProcess. El identificador debe ser un identificador de kernel, un identificador al que solo se puede acceder en modo kernel. Un identificador es un identificador de kernel si se crea con la marca OBJ_KERNEL_HANDLE. Para obtener más información, consulta InitializeObjectAttributes.

Los controladores no deben especificar el proceso actual si los recursos no se han liberado de la pila del kernel, ya que el sistema operativo no desenredará la pila del kernel para el subproceso que realiza la llamada.

Si la llamada a esta función se produce en modo de usuario, debe usar el nombre "NtTerminateProcess" en lugar de "ZwTerminateProcess".

En el caso de las llamadas desde controladores en modo kernel, las versiones NtXxx y ZwXxx de una rutina de Servicios del sistema nativo de Windows se pueden comportar de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ntddk.h (incluya Ntddk.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

Uso de las versiones Nt y Zw de las rutinas nativas de Servicios del sistema

ZwOpenProcess