blob: 1e75d3f52ee183e5bdfa69199678c8565506af53 [file] [log] [blame]
/**
* 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;
}