Work around MinGW mangling of "host:/path"
[msysgit/historical-msysgit.git] / mingw / include / aclapi.h
blobabd26a248f8252a5208730baed4f204429e905c7
1 #ifndef _ACLAPI_H
2 #define _ACLAPI_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
7 #include <windows.h>
8 #include <accctrl.h>
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
14 WINADVAPI VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD);
15 WINADVAPI VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD);
16 WINADVAPI DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A,
17 ULONG,PEXPLICIT_ACCESS_A,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
18 WINADVAPI DWORD WINAPI BuildSecurityDescriptorW(PTRUSTEE_W,PTRUSTEE_W ,ULONG,PEXPLICIT_ACCESS_W,
19 ULONG,PEXPLICIT_ACCESS_W,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
20 WINADVAPI VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A,LPSTR);
21 WINADVAPI VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W,LPWSTR);
22 WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A,POBJECTS_AND_NAME_A,SE_OBJECT_TYPE,
23 LPSTR,LPSTR,LPSTR);
24 WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W,POBJECTS_AND_NAME_W,SE_OBJECT_TYPE,
25 LPWSTR,LPWSTR,LPWSTR);
26 WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A,POBJECTS_AND_SID,GUID*,GUID*,PSID);
27 WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W,POBJECTS_AND_SID,GUID*,GUID*,PSID);
28 WINADVAPI VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A,PSID);
29 WINADVAPI VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W,PSID);
30 WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK,PACCESS_MASK);
31 WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK,PACCESS_MASK);
32 WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK);
33 WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK);
34 WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*);
35 WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*);
36 #if (_WIN32_WINNT >= 0x0501)
37 WINADVAPI DWORD WINAPI GetInheritanceSourceA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMA);
38 WINADVAPI DWORD WINAPI GetInheritanceSourceW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMW);
39 #endif
40 WINADVAPI DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
41 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
42 WINADVAPI DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
43 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
44 WINADVAPI DWORD WINAPI GetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,
45 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
46 WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEE_A);
47 WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEE_W);
48 WINADVAPI LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A);
49 WINADVAPI LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W);
50 WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A);
51 WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W);
52 WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsA(PTRUSTEE_A*,PTRUSTEE_A*,PULONG,PEXPLICIT_ACCESS_A*,
53 PULONG,PEXPLICIT_ACCESS_A*,PSECURITY_DESCRIPTOR);
54 WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsW(PTRUSTEE_W*,PTRUSTEE_W*,PULONG,PEXPLICIT_ACCESS_W*,
55 PULONG,PEXPLICIT_ACCESS_W*,PSECURITY_DESCRIPTOR);
56 WINADVAPI DWORD WINAPI SetEntriesInAclA(ULONG,PEXPLICIT_ACCESS_A,PACL,PACL*);
57 WINADVAPI DWORD WINAPI SetEntriesInAclW(ULONG,PEXPLICIT_ACCESS_W,PACL,PACL*);
58 WINADVAPI DWORD WINAPI SetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
59 WINADVAPI DWORD WINAPI SetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
60 WINADVAPI DWORD WINAPI SetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
61 WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,PTRUSTEE_A,DWORD,ACCESS_MODE,DWORD);
62 WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,PTRUSTEE_W,DWORD,ACCESS_MODE,DWORD);
63 WINADVAPI VOID WINAPI BuildImpersonateTrusteeA(PTRUSTEE_A,PTRUSTEE_A);
64 WINADVAPI VOID WINAPI BuildImpersonateTrusteeW(PTRUSTEE_W,PTRUSTEE_W);
65 WINADVAPI PTRUSTEE_A WINAPI GetMultipleTrusteeA(PTRUSTEE_A);
66 WINADVAPI PTRUSTEE_W WINAPI GetMultipleTrusteeW(PTRUSTEE_W);
67 WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationA(PTRUSTEE_A);
68 WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW(PTRUSTEE_W);
70 #ifdef UNICODE
71 #define BuildExplicitAccessWithName BuildExplicitAccessWithNameW
72 #define BuildSecurityDescriptor BuildSecurityDescriptorW
73 #define BuildTrusteeWithName BuildTrusteeWithNameW
74 #define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameW
75 #define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidW
76 #define BuildTrusteeWithSid BuildTrusteeWithSidW
77 #define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclW
78 #define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclW
79 #define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclW
80 #define GetNamedSecurityInfo GetNamedSecurityInfoW
81 #define GetTrusteeForm GetTrusteeFormW
82 #define GetTrusteeName GetTrusteeNameW
83 #define GetTrusteeType GetTrusteeTypeW
84 #define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsW
85 #define SetEntriesInAcl SetEntriesInAclW
86 #define SetNamedSecurityInfo SetNamedSecurityInfoW
87 #define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameW
88 #define BuildImpersonateTrustee BuildImpersonateTrusteeW
89 #define GetMultipleTrustee GetMultipleTrusteeW
90 #define GetMultipleTrusteeOperation GetMultipleTrusteeOperationW
91 #else
92 #define BuildExplicitAccessWithName BuildExplicitAccessWithNameA
93 #define BuildSecurityDescriptor BuildSecurityDescriptorA
94 #define BuildTrusteeWithName BuildTrusteeWithNameA
95 #define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameA
96 #define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidA
97 #define BuildTrusteeWithSid BuildTrusteeWithSidA
98 #define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclA
99 #define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclA
100 #define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclA
101 #define GetNamedSecurityInfo GetNamedSecurityInfoA
102 #define GetTrusteeForm GetTrusteeFormA
103 #define GetTrusteeName GetTrusteeNameA
104 #define GetTrusteeType GetTrusteeTypeA
105 #define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsA
106 #define SetEntriesInAcl SetEntriesInAclA
107 #define SetNamedSecurityInfo SetNamedSecurityInfoA
108 #define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameA
109 #define BuildImpersonateTrustee BuildImpersonateTrusteeA
110 #define GetMultipleTrustee GetMultipleTrusteeA
111 #define GetMultipleTrusteeOperation GetMultipleTrusteeOperationA
112 #endif /* UNICODE */
114 #ifdef __cplusplus
116 #endif
117 #endif