ZwOpenProcess, fonction (ntddk.h)

La routine ZwOpenProcess ouvre un handle à un objet de processus et définit les droits d’accès à cet objet.

Syntaxe

NTSYSAPI NTSTATUS ZwOpenProcess(
  [out]          PHANDLE            ProcessHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in]           POBJECT_ATTRIBUTES ObjectAttributes,
  [in, optional] PCLIENT_ID         ClientId
);

Paramètres

[out] ProcessHandle

Pointeur vers une variable de type HANDLE. La routine ZwOpenProcess écrit le handle de processus dans la variable vers laquelle pointe ce paramètre.

[in] DesiredAccess

Valeur ACCESS_MASK qui contient les droits d’accès demandés par l’appelant à l’objet de processus.

[in] ObjectAttributes

Pointeur vers une structure de OBJECT_ATTRIBUTES qui spécifie les attributs à appliquer au handle d’objet de processus. Le champ ObjectName de cette structure doit avoir la valeur NULL. Pour plus d'informations, consultez la section Notes qui suit.

[in, optional] ClientId

Pointeur vers un ID client qui identifie le thread dont le processus doit être ouvert. Ce paramètre doit être un pointeur non NULL vers un ID client valide. Pour plus d'informations, consultez la section Notes qui suit.

Valeur retournée

ZwOpenProcess retourne STATUS_SUCCESS si l’appel réussit. Les valeurs de retour possibles incluent les codes d’erreur status suivants.

Code de retour Description
STATUS_INVALID_PARAMETER_MIX L’appelant a fourni un nom d’objet ou n’a pas pu fournir un ID client.
STATUS_INVALID_CID L’ID client spécifié n’est pas valide.
STATUS_INVALID_PARAMETER Les droits d’accès demandés ne sont pas valides pour un objet de processus.
STATUS_ACCESS_DENIED Les droits d’accès demandés ne peuvent pas être accordés.

Remarques

Le paramètre ClientId doit pointer vers un ID client qui identifie le thread dont le processus doit être ouvert. En outre, le champ ObjectName de la structure pointée par ObjectAttributes doit avoir la valeur NULL.

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

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 (inclure Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Voir aussi

ACCESS_MASK

OBJECT_ATTRIBUTES

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