Fonction RsopAccessCheckByType (userenv.h)
La fonction RSoPAccessCheckByType détermine si un descripteur de sécurité accorde un ensemble spécifié de droits d’accès au client identifié par un RSOPTOKEN.
Syntaxe
USERENVAPI HRESULT RsopAccessCheckByType(
[in] PSECURITY_DESCRIPTOR pSecurityDescriptor,
[in] PSID pPrincipalSelfSid,
[in] PRSOPTOKEN pRsopToken,
[in] DWORD dwDesiredAccessMask,
[in] POBJECT_TYPE_LIST pObjectTypeList,
[in] DWORD ObjectTypeListLength,
[in] PGENERIC_MAPPING pGenericMapping,
[in] PPRIVILEGE_SET pPrivilegeSet,
[in] LPDWORD pdwPrivilegeSetLength,
[out] LPDWORD pdwGrantedAccessMask,
[out] LPBOOL pbAccessStatus
);
Paramètres
[in] pSecurityDescriptor
Pointeur vers un SECURITY_DESCRIPTOR sur lequel l’accès sur l’objet est vérifié.
[in] pPrincipalSelfSid
Pointeur vers un SID. Si le descripteur de sécurité est associé à un objet qui représente un principal (par exemple, un objet utilisateur), ce paramètre doit être le SID de l’objet. Lors de l’évaluation de l’accès, ce SID remplace logiquement le SID dans tout ACE contenant le SID bien connu PRINCIPAL_SELF (« S-1-5-10 »). Pour plus d’informations, consultez Identificateurs de sécurité et SID connus.
Ce paramètre doit avoir la valeur NULL si l’objet protégé ne représente pas de principal.
[in] pRsopToken
Pointeur vers un RSOPTOKEN valide représentant le client qui tente d’accéder à l’objet.
[in] dwDesiredAccessMask
Spécifie un masque d’accès qui indique les droits d’accès à case activée. Ce masque peut contenir une combinaison de droits d’accès génériques, standard et spécifiques. Pour plus d’informations, consultez Droits d’accès et masques d’accès.
[in] pObjectTypeList
Pointeur vers un tableau de structures OBJECT_TYPE_LIST qui identifient la hiérarchie des types d’objets pour lesquels case activée accès. Chaque élément du tableau spécifie un GUID qui identifie le type d’objet et une valeur indiquant le niveau du type d’objet dans la hiérarchie des types d’objets. Le tableau ne doit pas avoir deux éléments avec le même GUID.
Le tableau doit avoir au moins un élément. Le premier élément du tableau doit se trouver au niveau zéro et identifier l’objet lui-même. Le tableau ne peut avoir qu’un seul élément de niveau zéro. Le deuxième élément est un sous-objet, tel qu’un jeu de propriétés, au niveau 1. Après chaque entrée de niveau 1 se trouvent des entrées subordonnées pour les sous-objets de niveau 2 à 4. Par conséquent, les niveaux des éléments du tableau peuvent être {0, 1, 2, 2, 1, 2, 3}. Si la liste des types d’objets est désordonnées, RSoPAccessCheckByType échoue et GetLastError retourne ERROR_INVALID_PARAMETER.
[in] ObjectTypeListLength
Spécifie le nombre d’éléments dans le tableau pObjectTypeList .
[in] pGenericMapping
Pointeur vers la structure GENERIC_MAPPING associée à l’objet pour lequel l’accès est vérifié.
[in] pPrivilegeSet
Ce paramètre n’est actuellement pas utilisé.
[in] pdwPrivilegeSetLength
Ce paramètre n’est actuellement pas utilisé.
[out] pdwGrantedAccessMask
Pointeur vers un masque d’accès qui reçoit les droits d’accès accordés.
Si la fonction réussit, le paramètre pbAccessStatus a la valeur TRUE et le masque est mis à jour pour contenir les droits standard et spécifiques accordés. Si pbAccessStatus a la valeur FALSE, ce paramètre est défini sur zéro. Si la fonction échoue, le masque n’est pas modifié.
[out] pbAccessStatus
Pointeur vers une variable qui reçoit les résultats de l’case activée d’accès.
Si la fonction réussit et que l’ensemble de droits d’accès demandé est accordé, ce paramètre est défini sur TRUE. Sinon, ce paramètre a la valeur FALSE. Si la fonction échoue, le status n’est pas modifié.
Valeur retournée
Si la fonction réussit, la valeur de retour est S_OK. Sinon, la fonction retourne l’un des codes d’erreur COM définis dans le fichier d’en-tête du KIT de développement logiciel (SDK) de plateforme WinError.h.
Remarques
La fonction RSoPAccessCheckByType compare le descripteur de sécurité spécifié au RSOPTOKEN spécifié et indique, dans le paramètre pbAccessStatus , si l’accès est accordé ou refusé.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | userenv.h |
Bibliothèque | Userenv.lib |
DLL | Userenv.dll |