Compartilhar via


Função ZwTerminateProcess (ntddk.h)

A rotina ZwTerminateProcess encerra um processo e todos os seus threads.

Sintaxe

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

Parâmetros

[in, optional] ProcessHandle

Um identificador para o objeto de processo que representa o processo a ser encerrado.

[in] ExitStatus

Um valor NTSTATUS que o sistema operacional usa como o status final para o processo e cada um de seus threads.

Retornar valor

ZwTerminateProcess retornará STATUS_SUCCESS se a operação for bem-sucedida. Os valores retornados adicionais incluem:

Código de retorno Descrição
STATUS_OBJECT_TYPE_MISMATCH O identificador especificado não é um identificador de processo.
STATUS_INVALID_HANDLE O identificador especificado não é válido.
STATUS_ACCESS_DENIED O driver não pode acessar o objeto de processo especificado.
STATUS_PROCESS_IS_TERMINATING O processo especificado já está sendo encerrado.

Se o chamador especificar o processo atual no parâmetro ProcessHandle , ZwTerminateProcess não retornará.

Comentários

Para obter um identificador de processo que um driver pode especificar para o parâmetro ProcessHandle , o driver pode chamar ZwOpenProcess. O identificador deve ser um identificador de kernel, um identificador que só pode ser acessado no modo kernel. Um identificador será um identificador de kernel se ele for criado com o sinalizador OBJ_KERNEL_HANDLE. Para obter mais informações, consulte InitializeObjectAttributes.

Os drivers não devem especificar o processo atual se os recursos não tiverem sido liberados da pilha de kernel, pois o sistema operacional não desenrolará a pilha de kernel para o thread de chamada.

Se a chamada para essa função ocorrer no modo de usuário, você deverá usar o nome "NtTerminateProcess" em vez de "ZwTerminateProcess".

Para chamadas de drivers no modo kernel, as versões NtXxx e ZwXxx de uma rotina dos Serviços do Sistema Nativo do Windows podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Usando versões Nt e Zw das rotinas dos Serviços de Sistema Nativo.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntddk.h (inclua Ntddk.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Confira também

Usando versões Nt e Zw das rotinas dos Serviços de Sistema Nativo

ZwOpenProcess