Partager via


ZwTerminateProcess, fonction (ntddk.h)

La routine ZwTerminateProcess met fin à un processus et à tous ses threads.

Syntaxe

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

Paramètres

[in, optional] ProcessHandle

Handle de l’objet de processus qui représente le processus à terminer.

[in] ExitStatus

Valeur NTSTATUS que le système d’exploitation utilise comme status finale pour le processus et chacun de ses threads.

Valeur retournée

ZwTerminateProcess retourne STATUS_SUCCESS si l’opération réussit. Les valeurs de retour supplémentaires sont les suivantes :

Code de retour Description
STATUS_OBJECT_TYPE_MISMATCH Le handle spécifié n’est pas un handle de processus.
STATUS_INVALID_HANDLE Le handle spécifié n’est pas valide.
STATUS_ACCESS_DENIED Le pilote ne peut pas accéder à l’objet de processus spécifié.
STATUS_PROCESS_IS_TERMINATING Le processus spécifié se termine déjà.

Si l’appelant spécifie le processus actuel dans le paramètre ProcessHandle , ZwTerminateProcess ne retourne pas.

Remarques

Pour obtenir un handle de processus qu’un pilote peut spécifier pour le paramètre ProcessHandle , le pilote peut appeler ZwOpenProcess. Le handle doit être un handle de noyau, un handle accessible uniquement en mode noyau. Un handle est un handle de noyau s’il est créé avec l’indicateur OBJ_KERNEL_HANDLE. Pour plus d’informations, consultez InitializeObjectAttributes.

Les pilotes ne doivent pas spécifier le processus actuel si les ressources n’ont pas été libérées de la pile du noyau, car le système d’exploitation ne déroule pas la pile du noyau pour le thread appelant.

Si l’appel à cette fonction se produit en mode utilisateur, vous devez utiliser le nom « NtTerminateProcess » au lieu de « ZwTerminateProcess ».

Pour les appels provenant de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment dans la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Using Nt and Zw Versions of the Native System Services Routines.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ntddk.h (incluez Ntddk.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Voir aussi

Utilisation des versions Nt et Zw des routines des services système natifs

ZwOpenProcess