Partager via


Fonction NtCreateResourceManager (wdm.h)

La routine ZwCreateResourceManager crée un objet resource manager .

Syntaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtCreateResourceManager(
  [out]          PHANDLE            ResourceManagerHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in]           HANDLE             TmHandle,
  [in]           LPGUID             RmGuid,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
  [in, optional] ULONG              CreateOptions,
  [in, optional] PUNICODE_STRING    Description
);

Paramètres

[out] ResourceManagerHandle

Pointeur vers une variable allouée par l’appelant qui reçoit un handle vers le nouvel objet Resource Manager si l’appel à ZwCreateResourceManager réussit.

[in] DesiredAccess

Valeur ACCESS_MASK qui spécifie l’accès demandé par l’appelant à l’objet Resource Manager. Outre les droits d’accès définis pour tous les types d’objets (voir ACCESS_MASK), l’appelant peut spécifier l’un des indicateurs de droit d’accès suivants pour les objets Resource Manager :

indicateur de ACCESS_MASK Autorise l’appelant à
RESOURCEMANAGER_ENLIST S’inscrire dans les transactions (voir ZwCreateEnlistment).
RESOURCEMANAGER_GET_NOTIFICATION Recevoir des notifications sur les transactions associées à ce gestionnaire de ressources (consultez ZwGetNotificationResourceManager).
RESOURCEMANAGER_REGISTER_PROTOCOL Non utilisé.
RESOURCEMANAGER_QUERY_INFORMATION Interroger des informations sur le gestionnaire de ressources (voir ZwQueryInformationResourceManager).
RESOURCEMANAGER_SET_INFORMATION Non utilisé.
RESOURCEMANAGER_RECOVER Récupérer le gestionnaire de ressources (voir ZwRecoverResourceManager).
RESOURCEMANAGER_COMPLETE_PROPAGATION Non utilisé.
 

Vous pouvez également spécifier un ou plusieurs indicateurs de ACCESS_MASK génériques suivants. (Les indicateurs de STANDARD_RIGHTS_xxx sont des valeurs système prédéfinies utilisées pour appliquer la sécurité sur les objets système.) Vous pouvez également combiner ces indicateurs génériques avec des indicateurs supplémentaires du tableau précédent. Le tableau suivant montre comment les droits d’accès génériques correspondent à des droits d’accès spécifiques.

Droit d’accès générique Ensemble de droits d’accès spécifiques
RESOURCEMANAGER_GENERIC_READ STANDARD_RIGHTS_READ, RESOURCEMANAGER_QUERY_INFORMATION et SYNCHRONIZE
RESOURCEMANAGER_GENERIC_WRITE STANDARD_RIGHTS_WRITE, RESOURCEMANAGER_SET_INFORMATION, RESOURCEMANAGER_RECOVER, RESOURCEMANAGER_ENLIST, RESOURCEMANAGER_GET_NOTIFICATION, RESOURCEMANAGER_REGISTER_PROTOCOL, RESOURCEMANAGER_COMPLETE_PROPAGATION et SYNCHRONIZE
RESOURCEMANAGER_GENERIC_EXECUTE STANDARD_RIGHTS_EXECUTE, RESOURCEMANAGER_RECOVER, RESOURCEMANAGER_ENLIST, RESOURCEMANAGER_GET_NOTIFICATION, RESOURCEMANAGER_COMPLETE_PROPAGATION et SYNCHRONIZE
RESOURCEMANAGER_ALL_ACCESS STANDARD_RIGHTS_REQUIRED, RESOURCEMANAGER_GENERIC_READ, RESOURCEMANAGER_GENERIC_WRITE et RESOURCEMANAGER_GENERIC_EXECUTE

[in] TmHandle

Handle d’un objet gestionnaire de transactions obtenu par un précédent à ZwCreateTransactionManager ou ZwOpenTransactionManager.

[in] RmGuid

Pointeur vers un GUID que KTM utilisera pour identifier le gestionnaire de ressources. Si ce pointeur est NULL, KTM génère un GUID.

[in, optional] ObjectAttributes

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

[in, optional] CreateOptions

Indicateurs de création d’objets facultatifs. Le tableau suivant contient les indicateurs disponibles, qui sont définis dans Ktmtypes.h.

indicateur CreateOptions Signification
RESOURCE_MANAGER_COMMUNICATION Pour une utilisation interne uniquement.
RESOURCE_MANAGER_VOLATILE L’appelant gère les ressources volatiles. Il sera non persistant et n’effectuera pas de récupération.
 

Ce paramètre est facultatif et peut être égal à zéro.

[in, optional] Description

Pointeur vers une structure de UNICODE_STRING fournie par l’appelant qui contient une chaîne terminée par NULL. La chaîne fournit une description du gestionnaire de ressources. KTM stocke une copie de la chaîne et inclut la chaîne dans les messages qu’elle écrit dans le flux de journal. La longueur maximale de la chaîne est MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH. Ce paramètre est facultatif et peut être NULL.

Valeur de retour

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

Retourner le code Description
STATUS_OBJECT_TYPE_MISMATCH
Le handle qui TmHandle spécifie n’est pas un handle pour un objet transactionnel.
STATUS_INVALID_HANDLE
Le handle qui TmHandle spécifie n’est pas valide.
STATUS_ACCESS_DENIED
L’appelant n’a pas d’accès approprié à l’objet gestionnaire de transactions spécifié.
STATUS_TRANSACTION_OBJECT_EXPIRED
Le handle qui TmHandle spécifie est fermé.
STATUS_INVALID_PARAMETER
La valeur de createOptions paramètre n’est pas valide ou la chaîne de description de paramètre est trop longue.
STATUS_TM_VOLATILE
Le paramètre CreateOptions ne spécifie pas RESOURCE_MANAGER_VOLATILE, mais le gestionnaire de transactions qui TmHandle spécifie est volatile.
STATUS_OBJECT_NAME_COLLISION
Guid qui ResourceManagerGuid spécifie déjà.
STATUS_ACCESS_DENIED
La valeur du paramètre DesiredAccess n’est pas valide.
 

La routine peut retourner d’autres valeurs NTSTATUS .

Remarques

Un gestionnaire de ressources qui appelle ZwCreateResourceManager doit éventuellement appeler ZwClose pour fermer le handle d’objet.

Pour plus d’informations sur zwCreateResourceManager, consultez Création d’unResource Manager.

Pour les appels à partir de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment de 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.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows Vista et versions ultérieures du système d’exploitation.
plateforme cible Universel
d’en-tête wdm.h (include Wdm.h, Ntddk.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

UNICODE_STRING

ZwClose

ZwCreateEnlistment

ZwCreateTransactionManager

ZwGetNotificationResourceManager

ZwOpenResourceManager

ZwOpenTransactionManager

ZwQueryInformationResourceManager

ZwRecoverResourceManager