ZwOpenResourceManager, fonction (wdm.h)
La routine ZwOpenResourceManager retourne un handle à un objet Resource Manager existant.
Syntaxe
NTSYSCALLAPI NTSTATUS ZwOpenResourceManager(
[out] PHANDLE ResourceManagerHandle,
[in] ACCESS_MASK DesiredAccess,
[in] HANDLE TmHandle,
[in] LPGUID ResourceManagerGuid,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes
);
Paramètres
[out] ResourceManagerHandle
Pointeur vers une variable allouée à l’appelant qui reçoit le handle resource manager si l’appel à ZwOpenResourceManager réussit.
[in] DesiredAccess
Valeur ACCESS_MASK qui spécifie l’accès demandé de l’appelant à l’objet Resource Manager. Pour plus d’informations sur la façon de spécifier ce paramètre, consultez le paramètre DesiredAccess de ZwCreateResourceManager. Ce paramètre ne peut pas être égal à zéro.
[in] TmHandle
Handle d’un objet de gestionnaire de transactions obtenu par un appel précédent à ZwCreateTransactionManager ou ZwOpenTransactionManager.
[in] ResourceManagerGuid
Pointeur vers le GUID qui identifie le gestionnaire de ressources à ouvrir.
[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
ZwOpenResourceManager retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette routine peut retourner l’une des valeurs suivantes :
Code de retour | Description |
---|---|
|
Le handle spécifié par TmHandle n’est pas un handle pour un objet transaction. |
|
Le handle spécifié par TmHandle n’est pas valide. |
|
L’appelant n’a pas l’accès approprié à l’objet gestionnaire de transactions spécifié. |
|
Le paramètre DesiredAccess est égal à zéro ou le paramètre ResourceManagerGuid n’est pas valide. |
|
Le gestionnaire de ressources spécifié est introuvable. |
|
Le gestionnaire de transactions spécifié n’est pas en ligne. |
La routine peut retourner d’autres valeurs NTSTATUS.
Remarques
En règle générale, un composant TPS appelle ZwOpenResourceManager après avoir reçu un GUID d’inscription d’un autre composant TPS qui s’appelait précédemment ZwCreateResourceManager. La plupart des conceptions TPS ne nécessitent pas l’appel de ZwOpenResourceManager.
Un gestionnaire de ressources qui appelle ZwOpenResourceManager doit finalement appeler ZwClose pour fermer le handle d’objet.
Pour plus d’informations sur ZwOpenResourceManager, consultez Objets KTM.
NtOpenResourceManager et ZwOpenResourceManager 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(storport), PowerIrpDDis(wdm) |
Voir aussi
Utilisation des versions Nt et Zw des routines des services système natifs