/** * Windows API header module * * Translated from MinGW Windows headers * * Authors: Stewart Gordon * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) * Source: $(DRUNTIMESRC core/sys/windows/_aclapi.d) */module core.sys.windows.aclapi;version (Windows): version (ANSI) {} else version = Unicode;pragma(lib, "advapi32"); import core.sys.windows.accctrl, core.sys.windows.basetyps, core.sys.windows.w32api, core.sys.windows.winnt; extern (Windows) nothrow @nogc { VOID BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR, DWORD, ACCESS_MODE, DWORD); VOID BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR, DWORD, ACCESS_MODE, DWORD); DWORD BuildSecurityDescriptorA(PTRUSTEE_A, PTRUSTEE_A , ULONG, PEXPLICIT_ACCESS_A, ULONG, PEXPLICIT_ACCESS_A, PSECURITY_DESCRIPTOR, PULONG, PSECURITY_DESCRIPTOR*); DWORD BuildSecurityDescriptorW(PTRUSTEE_W, PTRUSTEE_W , ULONG, PEXPLICIT_ACCESS_W, ULONG, PEXPLICIT_ACCESS_W, PSECURITY_DESCRIPTOR, PULONG, PSECURITY_DESCRIPTOR*); VOID BuildTrusteeWithNameA(PTRUSTEE_A, LPSTR); VOID BuildTrusteeWithNameW(PTRUSTEE_W, LPWSTR); VOID BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A, POBJECTS_AND_NAME_A, SE_OBJECT_TYPE, LPSTR, LPSTR, LPSTR); VOID BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W, POBJECTS_AND_NAME_W, SE_OBJECT_TYPE, LPWSTR, LPWSTR, LPWSTR); VOID BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A, POBJECTS_AND_SID, GUID*, GUID*, PSID); VOID BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W, POBJECTS_AND_SID, GUID*, GUID*, PSID); VOID BuildTrusteeWithSidA(PTRUSTEE_A, PSID); VOID BuildTrusteeWithSidW(PTRUSTEE_W, PSID); DWORD GetAuditedPermissionsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK, PACCESS_MASK); DWORD GetAuditedPermissionsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK, PACCESS_MASK); DWORD GetEffectiveRightsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK); DWORD GetEffectiveRightsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK); DWORD GetExplicitEntriesFromAclA(PACL, PULONG, PEXPLICIT_ACCESS_A*); DWORD GetExplicitEntriesFromAclW(PACL, PULONG, PEXPLICIT_ACCESS_W*); static if (_WIN32_WINNT >= 0x501) { DWORD GetInheritanceSourceA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*, PGENERIC_MAPPING, PINHERITED_FROMA); DWORD GetInheritanceSourceW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*, PGENERIC_MAPPING, PINHERITED_FROMW); } DWORD GetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*); DWORD GetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*); DWORD GetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*); TRUSTEE_FORM GetTrusteeFormA(PTRUSTEE_A); TRUSTEE_FORM GetTrusteeFormW(PTRUSTEE_W); LPSTR GetTrusteeNameA(PTRUSTEE_A); LPWSTR GetTrusteeNameW(PTRUSTEE_W); TRUSTEE_TYPE GetTrusteeTypeA(PTRUSTEE_A); TRUSTEE_TYPE GetTrusteeTypeW(PTRUSTEE_W); DWORD LookupSecurityDescriptorPartsA(PTRUSTEE_A*, PTRUSTEE_A*, PULONG, PEXPLICIT_ACCESS_A*, PULONG, PEXPLICIT_ACCESS_A*, PSECURITY_DESCRIPTOR); DWORD LookupSecurityDescriptorPartsW(PTRUSTEE_W*, PTRUSTEE_W*, PULONG, PEXPLICIT_ACCESS_W*, PULONG, PEXPLICIT_ACCESS_W*, PSECURITY_DESCRIPTOR); DWORD SetEntriesInAclA(ULONG, PEXPLICIT_ACCESS_A, PACL, PACL*); DWORD SetEntriesInAclW(ULONG, PEXPLICIT_ACCESS_W, PACL, PACL*); DWORD SetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL); DWORD SetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL); DWORD SetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL); VOID BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR, PTRUSTEE_A, DWORD, ACCESS_MODE, DWORD); VOID BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR, PTRUSTEE_W, DWORD, ACCESS_MODE, DWORD); VOID BuildImpersonateTrusteeA(PTRUSTEE_A, PTRUSTEE_A); VOID BuildImpersonateTrusteeW(PTRUSTEE_W, PTRUSTEE_W); PTRUSTEE_A GetMultipleTrusteeA(PTRUSTEE_A); PTRUSTEE_W GetMultipleTrusteeW(PTRUSTEE_W); MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationA(PTRUSTEE_A); MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationW(PTRUSTEE_W);} version (Unicode) { alias BuildExplicitAccessWithName = BuildExplicitAccessWithNameW; alias BuildSecurityDescriptor = BuildSecurityDescriptorW; alias BuildTrusteeWithName = BuildTrusteeWithNameW; alias BuildTrusteeWithObjectsAndName = BuildTrusteeWithObjectsAndNameW; alias BuildTrusteeWithObjectsAndSid = BuildTrusteeWithObjectsAndSidW; alias BuildTrusteeWithSid = BuildTrusteeWithSidW; alias GetAuditedPermissionsFromAcl = GetAuditedPermissionsFromAclW; alias GetEffectiveRightsFromAcl = GetEffectiveRightsFromAclW; alias GetExplicitEntriesFromAcl = GetExplicitEntriesFromAclW; alias GetNamedSecurityInfo = GetNamedSecurityInfoW; alias GetTrusteeForm = GetTrusteeFormW; alias GetTrusteeName = GetTrusteeNameW; alias GetTrusteeType = GetTrusteeTypeW; alias LookupSecurityDescriptorParts = LookupSecurityDescriptorPartsW; alias SetEntriesInAcl = SetEntriesInAclW; alias SetNamedSecurityInfo = SetNamedSecurityInfoW; alias BuildImpersonateExplicitAccessWithName = BuildImpersonateExplicitAccessWithNameW; alias BuildImpersonateTrustee = BuildImpersonateTrusteeW; alias GetMultipleTrustee = GetMultipleTrusteeW; alias GetMultipleTrusteeOperation = GetMultipleTrusteeOperationW;} else { alias BuildExplicitAccessWithName = BuildExplicitAccessWithNameA; alias BuildSecurityDescriptor = BuildSecurityDescriptorA; alias BuildTrusteeWithName = BuildTrusteeWithNameA; alias BuildTrusteeWithObjectsAndName = BuildTrusteeWithObjectsAndNameA; alias BuildTrusteeWithObjectsAndSid = BuildTrusteeWithObjectsAndSidA; alias BuildTrusteeWithSid = BuildTrusteeWithSidA; alias GetAuditedPermissionsFromAcl = GetAuditedPermissionsFromAclA; alias GetEffectiveRightsFromAcl = GetEffectiveRightsFromAclA; alias GetExplicitEntriesFromAcl = GetExplicitEntriesFromAclA; alias GetNamedSecurityInfo = GetNamedSecurityInfoA; alias GetTrusteeForm = GetTrusteeFormA; alias GetTrusteeName = GetTrusteeNameA; alias GetTrusteeType = GetTrusteeTypeA; alias LookupSecurityDescriptorParts = LookupSecurityDescriptorPartsA; alias SetEntriesInAcl = SetEntriesInAclA; alias SetNamedSecurityInfo = SetNamedSecurityInfoA; alias BuildImpersonateExplicitAccessWithName = BuildImpersonateExplicitAccessWithNameA; alias BuildImpersonateTrustee = BuildImpersonateTrusteeA; alias GetMultipleTrustee = GetMultipleTrusteeA; alias GetMultipleTrusteeOperation = GetMultipleTrusteeOperationA;}
/**
* Windows API header module
*
* Translated from MinGW Windows headers
*
* Authors: Stewart Gordon
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(DRUNTIMESRC core/sys/windows/_aclapi.d)
*/
module core.sys.windows.aclapi;
version (Windows):
version (ANSI) {} else version = Unicode;
pragma(lib, "advapi32");
import core.sys.windows.accctrl, core.sys.windows.basetyps, core.sys.windows.w32api, core.sys.windows.winnt;
extern (Windows) nothrow @nogc {
VOID BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR, DWORD,
ACCESS_MODE, DWORD);
VOID BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR, DWORD,
ACCESS_MODE, DWORD);
DWORD BuildSecurityDescriptorA(PTRUSTEE_A, PTRUSTEE_A , ULONG,
PEXPLICIT_ACCESS_A, ULONG, PEXPLICIT_ACCESS_A, PSECURITY_DESCRIPTOR,
PULONG, PSECURITY_DESCRIPTOR*);
DWORD BuildSecurityDescriptorW(PTRUSTEE_W, PTRUSTEE_W , ULONG,
PEXPLICIT_ACCESS_W, ULONG, PEXPLICIT_ACCESS_W, PSECURITY_DESCRIPTOR,
PULONG, PSECURITY_DESCRIPTOR*);
VOID BuildTrusteeWithNameA(PTRUSTEE_A, LPSTR);
VOID BuildTrusteeWithNameW(PTRUSTEE_W, LPWSTR);
VOID BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A, POBJECTS_AND_NAME_A,
SE_OBJECT_TYPE, LPSTR, LPSTR, LPSTR);
VOID BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W, POBJECTS_AND_NAME_W,
SE_OBJECT_TYPE, LPWSTR, LPWSTR, LPWSTR);
VOID BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A, POBJECTS_AND_SID,
GUID*, GUID*, PSID);
VOID BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W, POBJECTS_AND_SID,
GUID*, GUID*, PSID);
VOID BuildTrusteeWithSidA(PTRUSTEE_A, PSID);
VOID BuildTrusteeWithSidW(PTRUSTEE_W, PSID);
DWORD GetAuditedPermissionsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK,
PACCESS_MASK);
DWORD GetAuditedPermissionsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK,
PACCESS_MASK);
DWORD GetEffectiveRightsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK);
DWORD GetEffectiveRightsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK);
DWORD GetExplicitEntriesFromAclA(PACL, PULONG, PEXPLICIT_ACCESS_A*);
DWORD GetExplicitEntriesFromAclW(PACL, PULONG, PEXPLICIT_ACCESS_W*);
static if (_WIN32_WINNT >= 0x501) {
DWORD GetInheritanceSourceA(LPSTR, SE_OBJECT_TYPE,
SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*,
PGENERIC_MAPPING, PINHERITED_FROMA);
DWORD GetInheritanceSourceW(LPWSTR, SE_OBJECT_TYPE,
SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*,
PGENERIC_MAPPING, PINHERITED_FROMW);
}
DWORD GetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
DWORD GetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
DWORD GetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
TRUSTEE_FORM GetTrusteeFormA(PTRUSTEE_A);
TRUSTEE_FORM GetTrusteeFormW(PTRUSTEE_W);
LPSTR GetTrusteeNameA(PTRUSTEE_A);
LPWSTR GetTrusteeNameW(PTRUSTEE_W);
TRUSTEE_TYPE GetTrusteeTypeA(PTRUSTEE_A);
TRUSTEE_TYPE GetTrusteeTypeW(PTRUSTEE_W);
DWORD LookupSecurityDescriptorPartsA(PTRUSTEE_A*, PTRUSTEE_A*, PULONG,
PEXPLICIT_ACCESS_A*, PULONG, PEXPLICIT_ACCESS_A*,
PSECURITY_DESCRIPTOR);
DWORD LookupSecurityDescriptorPartsW(PTRUSTEE_W*, PTRUSTEE_W*, PULONG,
PEXPLICIT_ACCESS_W*, PULONG, PEXPLICIT_ACCESS_W*,
PSECURITY_DESCRIPTOR);
DWORD SetEntriesInAclA(ULONG, PEXPLICIT_ACCESS_A, PACL, PACL*);
DWORD SetEntriesInAclW(ULONG, PEXPLICIT_ACCESS_W, PACL, PACL*);
DWORD SetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
PSID, PSID, PACL, PACL);
DWORD SetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
PSID, PSID, PACL, PACL);
DWORD SetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID,
PSID, PACL, PACL);
VOID BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR,
PTRUSTEE_A, DWORD, ACCESS_MODE, DWORD);
VOID BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR,
PTRUSTEE_W, DWORD, ACCESS_MODE, DWORD);
VOID BuildImpersonateTrusteeA(PTRUSTEE_A, PTRUSTEE_A);
VOID BuildImpersonateTrusteeW(PTRUSTEE_W, PTRUSTEE_W);
PTRUSTEE_A GetMultipleTrusteeA(PTRUSTEE_A);
PTRUSTEE_W GetMultipleTrusteeW(PTRUSTEE_W);
MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationA(PTRUSTEE_A);
MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationW(PTRUSTEE_W);
}
version (Unicode) {
alias BuildExplicitAccessWithName = BuildExplicitAccessWithNameW;
alias BuildSecurityDescriptor = BuildSecurityDescriptorW;
alias BuildTrusteeWithName = BuildTrusteeWithNameW;
alias BuildTrusteeWithObjectsAndName = BuildTrusteeWithObjectsAndNameW;
alias BuildTrusteeWithObjectsAndSid = BuildTrusteeWithObjectsAndSidW;
alias BuildTrusteeWithSid = BuildTrusteeWithSidW;
alias GetAuditedPermissionsFromAcl = GetAuditedPermissionsFromAclW;
alias GetEffectiveRightsFromAcl = GetEffectiveRightsFromAclW;
alias GetExplicitEntriesFromAcl = GetExplicitEntriesFromAclW;
alias GetNamedSecurityInfo = GetNamedSecurityInfoW;
alias GetTrusteeForm = GetTrusteeFormW;
alias GetTrusteeName = GetTrusteeNameW;
alias GetTrusteeType = GetTrusteeTypeW;
alias LookupSecurityDescriptorParts = LookupSecurityDescriptorPartsW;
alias SetEntriesInAcl = SetEntriesInAclW;
alias SetNamedSecurityInfo = SetNamedSecurityInfoW;
alias BuildImpersonateExplicitAccessWithName = BuildImpersonateExplicitAccessWithNameW;
alias BuildImpersonateTrustee = BuildImpersonateTrusteeW;
alias GetMultipleTrustee = GetMultipleTrusteeW;
alias GetMultipleTrusteeOperation = GetMultipleTrusteeOperationW;
} else {
alias BuildExplicitAccessWithName = BuildExplicitAccessWithNameA;
alias BuildSecurityDescriptor = BuildSecurityDescriptorA;
alias BuildTrusteeWithName = BuildTrusteeWithNameA;
alias BuildTrusteeWithObjectsAndName = BuildTrusteeWithObjectsAndNameA;
alias BuildTrusteeWithObjectsAndSid = BuildTrusteeWithObjectsAndSidA;
alias BuildTrusteeWithSid = BuildTrusteeWithSidA;
alias GetAuditedPermissionsFromAcl = GetAuditedPermissionsFromAclA;
alias GetEffectiveRightsFromAcl = GetEffectiveRightsFromAclA;
alias GetExplicitEntriesFromAcl = GetExplicitEntriesFromAclA;
alias GetNamedSecurityInfo = GetNamedSecurityInfoA;
alias GetTrusteeForm = GetTrusteeFormA;
alias GetTrusteeName = GetTrusteeNameA;
alias GetTrusteeType = GetTrusteeTypeA;
alias LookupSecurityDescriptorParts = LookupSecurityDescriptorPartsA;
alias SetEntriesInAcl = SetEntriesInAclA;
alias SetNamedSecurityInfo = SetNamedSecurityInfoA;
alias BuildImpersonateExplicitAccessWithName = BuildImpersonateExplicitAccessWithNameA;
alias BuildImpersonateTrustee = BuildImpersonateTrusteeA;
alias GetMultipleTrustee = GetMultipleTrusteeA;
alias GetMultipleTrusteeOperation = GetMultipleTrusteeOperationA;
}