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é de l’appelant à l’objet Resource Manager. En plus des 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 ACCESS_MASK | Permet à l’appelant de |
---|---|
RESOURCEMANAGER_ENLIST | Inscrivez-vous dans les transactions (voir ZwCreateEnlistment). |
RESOURCEMANAGER_GET_NOTIFICATION | Recevez des notifications sur les transactions associées à ce gestionnaire de ressources (voir ZwGetNotificationResourceManager). |
RESOURCEMANAGER_REGISTER_PROTOCOL | Non utilisé. |
RESOURCEMANAGER_QUERY_INFORMATION | Interrogez des informations sur le gestionnaire de ressources (consultez ZwQueryInformationResourceManager). |
RESOURCEMANAGER_SET_INFORMATION | Non utilisé. |
RESOURCEMANAGER_RECOVER | Récupérez le gestionnaire de ressources (voir ZwRecoverResourceManager). |
RESOURCEMANAGER_COMPLETE_PROPAGATION | Non utilisé. |
Vous pouvez également spécifier un ou plusieurs des indicateurs de ACCESS_MASK génériques suivants. (Les indicateurs 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 de gestionnaire de transactions qui a été 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 a la valeur 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 | À usage interne uniquement. |
RESOURCE_MANAGER_VOLATILE | L’appelant gère les ressources volatiles. Il ne sera pas 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 NULL terminée. 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’il écrit dans le flux de journal. La longueur maximale de chaîne est MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH. Ce paramètre est facultatif et peut être NULL.
Valeur retournée
ZwCreateResourceManager 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 de 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 handle spécifié par TmHandle est fermé. |
|
La valeur du paramètre CreateOptions n’est pas valide ou la chaîne du paramètre Description est trop longue. |
|
Le paramètre CreateOptions ne spécifie pas RESOURCE_MANAGER_VOLATILE, mais le gestionnaire de transactions spécifié par TmHandle est volatile. |
|
Le GUID spécifié par ResourceManagerGuid existe 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 finalement appeler ZwClose pour fermer le handle d’objet.
Pour plus d’informations sur ZwCreateResourceManager, consultez Création d’un Resource 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 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 Utilisation des versions Nt et Zw des routines des services système natifs.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista et les versions ultérieures du système d’exploitation. |
Plateforme cible | Universal |
En-tête | wdm.h (inclure 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