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 |
---|---|
|
Le handle qui TmHandle spécifie n’est pas un handle pour un objet transactionnel. |
|
Le handle qui TmHandle spécifie n’est pas valide. |
|
L’appelant n’a pas d’accès approprié à l’objet gestionnaire de transactions spécifié. |
|
Le handle qui TmHandle spécifie est fermé. |
|
La valeur de createOptions paramètre n’est pas valide ou la chaîne de description de paramètre est trop longue. |
|
Le paramètre CreateOptions ne spécifie pas RESOURCE_MANAGER_VOLATILE, mais le gestionnaire de transactions qui TmHandle spécifie est volatile. |
|
Guid qui ResourceManagerGuid spécifie déjà. |
|
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
ZwGetNotificationResourceManager