1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
/**
* 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):
@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;
}
|