| /** |
| * 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 src/core/sys/windows/_aclapi.d) |
| */ |
| module core.sys.windows.aclapi; |
| version (Windows): |
| @system: |
| |
| 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) { |
| 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 BuildExplicitAccessWithNameW BuildExplicitAccessWithName; |
| alias BuildSecurityDescriptorW BuildSecurityDescriptor; |
| alias BuildTrusteeWithNameW BuildTrusteeWithName; |
| alias BuildTrusteeWithObjectsAndNameW BuildTrusteeWithObjectsAndName; |
| alias BuildTrusteeWithObjectsAndSidW BuildTrusteeWithObjectsAndSid; |
| alias BuildTrusteeWithSidW BuildTrusteeWithSid; |
| alias GetAuditedPermissionsFromAclW GetAuditedPermissionsFromAcl; |
| alias GetEffectiveRightsFromAclW GetEffectiveRightsFromAcl; |
| alias GetExplicitEntriesFromAclW GetExplicitEntriesFromAcl; |
| alias GetNamedSecurityInfoW GetNamedSecurityInfo; |
| alias GetTrusteeFormW GetTrusteeForm; |
| alias GetTrusteeNameW GetTrusteeName; |
| alias GetTrusteeTypeW GetTrusteeType; |
| alias LookupSecurityDescriptorPartsW LookupSecurityDescriptorParts; |
| alias SetEntriesInAclW SetEntriesInAcl; |
| alias SetNamedSecurityInfoW SetNamedSecurityInfo; |
| alias BuildImpersonateExplicitAccessWithNameW |
| BuildImpersonateExplicitAccessWithName; |
| alias BuildImpersonateTrusteeW BuildImpersonateTrustee; |
| alias GetMultipleTrusteeW GetMultipleTrustee; |
| alias GetMultipleTrusteeOperationW GetMultipleTrusteeOperation; |
| } else { |
| alias BuildExplicitAccessWithNameA BuildExplicitAccessWithName; |
| alias BuildSecurityDescriptorA BuildSecurityDescriptor; |
| alias BuildTrusteeWithNameA BuildTrusteeWithName; |
| alias BuildTrusteeWithObjectsAndNameA BuildTrusteeWithObjectsAndName; |
| alias BuildTrusteeWithObjectsAndSidA BuildTrusteeWithObjectsAndSid; |
| alias BuildTrusteeWithSidA BuildTrusteeWithSid; |
| alias GetAuditedPermissionsFromAclA GetAuditedPermissionsFromAcl; |
| alias GetEffectiveRightsFromAclA GetEffectiveRightsFromAcl; |
| alias GetExplicitEntriesFromAclA GetExplicitEntriesFromAcl; |
| alias GetNamedSecurityInfoA GetNamedSecurityInfo; |
| alias GetTrusteeFormA GetTrusteeForm; |
| alias GetTrusteeNameA GetTrusteeName; |
| alias GetTrusteeTypeA GetTrusteeType; |
| alias LookupSecurityDescriptorPartsA LookupSecurityDescriptorParts; |
| alias SetEntriesInAclA SetEntriesInAcl; |
| alias SetNamedSecurityInfoA SetNamedSecurityInfo; |
| alias BuildImpersonateExplicitAccessWithNameA |
| BuildImpersonateExplicitAccessWithName; |
| alias BuildImpersonateTrusteeA BuildImpersonateTrustee; |
| alias GetMultipleTrusteeA GetMultipleTrustee; |
| alias GetMultipleTrusteeOperationA GetMultipleTrusteeOperation; |
| } |