Fonction MakeAbsoluteSD (securitybaseapi.h)
La fonction MakeAbsoluteSD crée un descripteur de sécurité au format absolu en utilisant un descripteur de sécurité au format auto-relatif comme modèle.
Syntaxe
BOOL MakeAbsoluteSD(
[in] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
[out, optional] PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
[in, out] LPDWORD lpdwAbsoluteSecurityDescriptorSize,
[out, optional] PACL pDacl,
[in, out] LPDWORD lpdwDaclSize,
[out, optional] PACL pSacl,
[in, out] LPDWORD lpdwSaclSize,
[out, optional] PSID pOwner,
[in, out] LPDWORD lpdwOwnerSize,
[out, optional] PSID pPrimaryGroup,
[in, out] LPDWORD lpdwPrimaryGroupSize
);
Paramètres
[in] pSelfRelativeSecurityDescriptor
Pointeur vers une structure de SECURITY_DESCRIPTOR au format auto-relatif. La fonction crée une version au format absolu de ce descripteur de sécurité sans modifier le descripteur de sécurité d’origine.
[out, optional] pAbsoluteSecurityDescriptor
Pointeur vers une mémoire tampon que la fonction remplit avec le corps main d’un descripteur de sécurité de format absolu. Ces informations sont mises en forme en tant que structure SECURITY_DESCRIPTOR .
[in, out] lpdwAbsoluteSecurityDescriptorSize
Pointeur vers une variable qui spécifie la taille de la mémoire tampon pointée vers le paramètre pAbsoluteSD . Si la mémoire tampon n’est pas assez grande pour le descripteur de sécurité, la fonction échoue et définit cette variable à la taille minimale requise.
[out, optional] pDacl
Pointeur vers une mémoire tampon que la fonction remplit avec la liste de contrôle d’accès discrétionnaire (DACL) du descripteur de sécurité au format absolu. Le corps main du descripteur de sécurité au format absolu fait référence à ce pointeur.
[in, out] lpdwDaclSize
Pointeur vers une variable qui spécifie la taille de la mémoire tampon pointée par le paramètre pDacl . Si la mémoire tampon n’est pas assez grande pour la liste de contrôle d’accès (ACL), la fonction échoue et définit cette variable à la taille minimale requise.
[out, optional] pSacl
Pointeur vers une mémoire tampon que la fonction remplit avec la liste de contrôle d’accès système (SACL) du descripteur de sécurité au format absolu. Le corps main du descripteur de sécurité au format absolu fait référence à ce pointeur.
[in, out] lpdwSaclSize
Pointeur vers une variable qui spécifie la taille de la mémoire tampon pointée vers le paramètre pSacl . Si la mémoire tampon n’est pas assez grande pour l’ACL, la fonction échoue et définit cette variable à la taille minimale requise.
[out, optional] pOwner
Pointeur vers une mémoire tampon que la fonction remplit avec l’identificateur de sécurité (SID) du propriétaire du descripteur de sécurité au format absolu. Le corps main du descripteur de sécurité au format absolu fait référence à ce pointeur.
[in, out] lpdwOwnerSize
Pointeur vers une variable qui spécifie la taille de la mémoire tampon pointée par le paramètre pOwner . Si la mémoire tampon n’est pas assez grande pour le SID, la fonction échoue et définit cette variable à la taille minimale requise.
[out, optional] pPrimaryGroup
Pointeur vers une mémoire tampon que la fonction remplit avec le SID du groupe principal du descripteur de sécurité au format absolu. Le corps main du descripteur de sécurité au format absolu fait référence à ce pointeur.
[in, out] lpdwPrimaryGroupSize
Pointeur vers une variable qui spécifie la taille de la mémoire tampon pointée vers le paramètre pPrimaryGroup . Si la mémoire tampon n’est pas assez grande pour le SID, la fonction échoue et définit cette variable à la taille minimale requise.
Valeur retournée
Si la fonction réussit, la fonction retourne une valeur différente de zéro.
Si la fonction échoue, elle retourne zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError. Les codes de retour possibles incluent, sans s’y limiter, les éléments suivants.
Code/valeur de retour | Description |
---|---|
|
Une ou plusieurs des mémoires tampons sont trop petites. |
Remarques
Un descripteur de sécurité au format absolu contient des pointeurs vers les informations qu’il contient, plutôt que vers les informations elles-mêmes. Un descripteur de sécurité au format auto-relatif contient les informations dans un bloc contigu de mémoire. Dans un descripteur de sécurité auto-relatif, une structure SECURITY_DESCRIPTOR démarre toujours les informations, mais les autres composants du descripteur de sécurité peuvent suivre la structure dans n’importe quel ordre. Au lieu d’utiliser des adresses mémoire, les composants du descripteur de sécurité auto-relatif sont identifiés par des décalages à partir du début du descripteur de sécurité. Ce format est utile lorsqu’un descripteur de sécurité doit être stocké sur une disquette ou transmis au moyen d’un protocole de communication.
Un serveur qui copie des objets sécurisés sur différents supports peut utiliser la fonction MakeAbsoluteSD pour créer un descripteur de sécurité absolu à partir d’un descripteur de sécurité auto-relatif et la fonction MakeSelfRelativeSD pour créer un descripteur de sécurité auto-relatif à partir d’un descripteur de sécurité absolu.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | securitybaseapi.h (inclure Windows.h) |
Bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |