AccessCheck Implementation - Delphi
DarkCoderSc
Jean-Pierre LESUEUR
uses
System.SysUtils, Winapi.Windows;
// ...
function AccessCheck(ADesiredAccess : DWORD; const hToken : THandle; const ptrSecurityDescriptor : PSecurityDescriptor) : Boolean;
begin
var AMapping : TGenericMapping;
AMapping.GenericRead := KEY_READ;
AMapping.GenericWrite := KEY_WRITE;
AMapping.GenericExecute := KEY_EXECUTE;
AMapping.GenericAll := KEY_ALL_ACCESS;
///
MapGenericMask(ADesiredAccess, AMapping);
var APrivilegeSet : TPrivilegeSet;
var APrivilegeSetSize := DWORD(SizeOf(TPrivilegeSet));
var AGrantedAccess := DWORD(0);
var AStatus : BOOL;
if not Winapi.Windows.AccessCheck(
ptrSecurityDescriptor,
hToken,
ADesiredAccess,
AMapping,
APrivilegeSet,
APrivilegeSetSize,
AGrantedAccess,
AStatus
) then
result := False
else
result := AStatus;
end;
Featured Windows APIs
Created
December 2, 2025
Last Revised
December 2, 2025