RsopAccessCheckByType-Funktion (userenv.h)

Die RSoPAccessCheckByType-Funktion bestimmt, ob ein Sicherheitsdeskriptor dem von einem RSOPTOKEN identifizierten Client einen angegebenen Satz von Zugriffsrechten gewährt.

Syntax

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
);

Parameter

[in] pSecurityDescriptor

Zeiger auf eine SECURITY_DESCRIPTOR , für die der Zugriff auf das Objekt überprüft wird.

[in] pPrincipalSelfSid

Zeiger auf eine SID. Wenn der Sicherheitsdeskriptor einem Objekt zugeordnet ist, das einen Prinzipal darstellt (z. B. ein Benutzerobjekt), sollte dieser Parameter die SID des Objekts sein. Beim Auswerten des Zugriffs ersetzt diese SID logisch die SID in jedem ACE, der die bekannte PRINCIPAL_SELF SID ("S-1-5-10") enthält. Weitere Informationen finden Sie unter Sicherheitsbezeichner und bekannte SIDs.

Dieser Parameter sollte NULL sein, wenn das geschützte Objekt keinen Prinzipal darstellt.

[in] pRsopToken

Zeiger auf einen gültigen RSOPTOKEN , der den Client darstellt, der versucht, Zugriff auf das Objekt zu erhalten.

[in] dwDesiredAccessMask

Gibt eine Zugriffsmaske an, die die zu überprüfenden Zugriffsrechte angibt. Diese Maske kann eine Kombination aus generischen, Standard- und spezifischen Zugriffsrechten enthalten. Weitere Informationen finden Sie unter Zugriffsrechte und Zugriffsmasken.

[in] pObjectTypeList

Zeiger auf ein Array von OBJECT_TYPE_LIST Strukturen, die die Hierarchie der Objekttypen identifizieren, für die der Zugriff überprüft werden soll. Jedes Element im Array gibt eine GUID an, die den Objekttyp identifiziert, und einen Wert, der die Ebene des Objekttyps in der Hierarchie der Objekttypen angibt. Das Array sollte nicht über zwei Elemente mit derselben GUID verfügen.

Das Array muss mindestens ein Element aufweisen. Das erste Element im Array muss auf der Ebene 0 liegen und das Objekt selbst identifizieren. Das Array kann nur ein Nullelement der Ebene aufweisen. Das zweite Element ist ein Unterobjekt, z. B. ein Eigenschaftssatz, auf Ebene 1. Jedem Eintrag der Ebene 1 folgen untergeordnete Einträge für die Unterobjekte der Ebene 2 bis 4. Daher können die Ebenen für die Elemente im Array {0, 1, 2, 2, 1, 2, 2, 3} sein. Wenn die Objekttypliste nicht ordnungsgemäß ist, schlägt RSoPAccessCheckByType fehl, und GetLastError gibt ERROR_INVALID_PARAMETER zurück.

[in] ObjectTypeListLength

Gibt die Anzahl der Elemente im pObjectTypeList-Array an.

[in] pGenericMapping

Zeiger auf die GENERIC_MAPPING Struktur, die dem Objekt zugeordnet ist, für das der Zugriff überprüft wird.

[in] pPrivilegeSet

Dieser Parameter wird derzeit nicht verwendet.

[in] pdwPrivilegeSetLength

Dieser Parameter wird derzeit nicht verwendet.

[out] pdwGrantedAccessMask

Zeiger auf eine Zugriffsmaske , die die gewährten Zugriffsrechte empfängt.

Wenn die Funktion erfolgreich ist, wird der pbAccessStatus-Parameter auf TRUE festgelegt, und die Maske wird so aktualisiert, dass sie die Standard- und spezifischen Rechte enthält, die gewährt werden. Wenn pbAccessStatus auf FALSE festgelegt ist, wird dieser Parameter auf Null festgelegt. Wenn die Funktion fehlschlägt, wird die Maske nicht geändert.

[out] pbAccessStatus

Zeiger auf eine Variable, die die Ergebnisse der Zugriffsprüfung empfängt.

Wenn die Funktion erfolgreich ist und der angeforderte Satz von Zugriffsrechten gewährt wird, wird dieser Parameter auf TRUE festgelegt. Andernfalls wird dieser Parameter auf FALSE festgelegt. Wenn die Funktion fehlschlägt, wird die status nicht geändert.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert S_OK. Andernfalls gibt die Funktion einen der COM-Fehlercodes zurück, die in der Platform SDK-Headerdatei WinError.h definiert sind.

Hinweise

Die RSoPAccessCheckByType-Funktion vergleicht den angegebenen Sicherheitsdeskriptor mit dem angegebenen RSOPTOKEN und gibt im pbAccessStatus-Parameter an, ob der Zugriff gewährt oder verweigert wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile userenv.h
Bibliothek Userenv.lib
DLL Userenv.dll

Weitere Informationen

Gruppenrichtlinie-Funktionen

Übersicht über Gruppenrichtlinien

RSoPFileAccessCheck