Partager via


Fonction NtOpenEnlistment (wdm.h)

La routine ZwOpenEnlistment obtient un handle pour un objet d’inscription existant.

Syntaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenEnlistment(
  [out]          PHANDLE            EnlistmentHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in]           HANDLE             ResourceManagerHandle,
  [in]           LPGUID             EnlistmentGuid,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes
);

Paramètres

[out] EnlistmentHandle

Pointeur vers une variable allouée par l’appelant qui reçoit un handle vers un objet d’inscription si l’appel à ZwOpenEnlistment réussit.

[in] DesiredAccess

Valeur de type ACCESS_MASK qui spécifie l’accès demandé à l’objet d’inscription. Pour plus d’informations sur la façon de spécifier ce paramètre, consultez le paramètre DesiredAccess de ZwCreateEnlistment. Ce paramètre ne peut pas être égal à zéro.

[in] ResourceManagerHandle

Handle d’un objet resource manager obtenu par un appel précédent à ZwCreateResourceManager ou ZwOpenResourceManager.

[in] EnlistmentGuid

Pointeur vers un GUID qui identifie l’inscription. Pour plus d'informations, consultez la section Notes qui suit.

[in, optional] ObjectAttributes

Pointeur vers une structure OBJECT_ATTRIBUTES qui spécifie les attributs de l’objet. Utilisez la routine InitializeObjectAttributes pour initialiser cette structure, mais spécifiez uniquement les paramètres InitializedAttributes et Attributes de cette routine. Si l’appelant n’est pas en cours d’exécution dans un contexte de thread système, il doit définir l’indicateur OBJ_KERNEL_HANDLE dans le paramètre Attributes . Ce paramètre est facultatif et peut être NULL.

Valeur retournée

ZwOpenEnlistment retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette routine peut retourner l’une des valeurs suivantes :

Code de retour Description
STATUS_INVALID_HANDLE
Le handle d’objet n’est pas valide.
STATUS_ACCESS_DENIED
L’appelant n’a pas l’accès approprié à l’objet d’inscription.
STATUS_INVALID_PARAMETER
La valeur du paramètre DesiredAccess est zéro ou la valeur du paramètre EnlistmentGuid est NULL.
STATUS_ENLISTMENT_NOT_FOUND
L’enrôlement spécifié par le paramètre EnlistmentGuid n’existe pas pour le gestionnaire de ressources spécifié par le paramètre RmHandle .
STATUS_ACCESS_DENIED
La valeur du paramètre DesiredAccess n’est pas valide.
 

La routine peut retourner d’autres valeurs NTSTATUS.

Remarques

En règle générale, un composant TPS appelle ZwOpenEnlistment après avoir reçu un GUID d’inscription d’un autre composant TPS qui s’appelait précédemment ZwCreateEnlistment. La plupart des conceptions TPS ne nécessitent pas l’appel de ZwOpenEnlistment.

Un gestionnaire de ressources qui appelle ZwOpenEnlistment doit finalement appeler ZwClose pour fermer le handle d’objet.

Pour plus d’informations sur ZwOpenEnlistment, consultez Objets d’inscription.

NtOpenEnlistment et ZwOpenEnlistment sont deux versions de la même routine Windows Native System Services.

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
Client minimal pris en charge Disponible dans Windows Vista et versions ultérieures du système d’exploitation.
Plateforme cible Universal
En-tête wdm.h (include Wdm.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Voir aussi

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

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

ZwClose

ZwCreateEnlistment

ZwCreateResourceManager

ZwOpenResourceManager

ZwQueryInformationEnlistment

ZwSetInformationEnlistment