Platform SDK: Access Control |
The AccessCheck function determines whether a security descriptor grants a specified set of access rights to the client identified by an access token. Typically, server applications use this function to check access to a private object.
BOOL AccessCheck( PSECURITY_DESCRIPTOR pSecurityDescriptor, // SD HANDLE ClientToken, // handle to client access token DWORD DesiredAccess, // requested access rights PGENERIC_MAPPING GenericMapping, // mapping PPRIVILEGE_SET PrivilegeSet, // privileges LPDWORD PrivilegeSetLength, // size of privileges buffer LPDWORD GrantedAccess, // granted access rights LPBOOL AccessStatus // result of access check );
If this parameter is MAXIMUM_ALLOWED, the function sets the GrantedAccess access mask to indicate the maximum access rights the security descriptor allows the client.
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
The AccessCheck function compares the specified security descriptor with the specified access token and indicates, in the AccessStatus parameter, whether access is granted or denied. If access is granted, the requested access mask becomes the object's granted access mask.
If the security descriptor's DACL is NULL, the AccessStatus parameter returns TRUE indicating that the client has the requested access.
AccessCheck fails with ERROR_INVALID_SECURITY_DESCR if the security descriptor does not contain owner and group SIDs.
Windows NT/2000: Requires Windows NT 3.1 or later.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Advapi32.lib.
Client/Server Access Control Overview, Client/Server Access Control Functions, AccessCheckAndAuditAlarm, AreAllAccessesGranted, AreAnyAccessesGranted, GENERIC_MAPPING, MakeAbsoluteSD, MapGenericMask, PrivilegeCheck, PRIVILEGE_SET, SECURITY_DESCRIPTOR