source: Daodan/MinGW/include/aclapi.h@ 1088

Last change on this file since 1088 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 6.8 KB
Line 
1#ifndef _ACLAPI_H
2#define _ACLAPI_H
3#if __GNUC__ >= 3
4#pragma GCC system_header
5#endif
6
7#include <windows.h>
8#include <accctrl.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14WINADVAPI VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD);
15WINADVAPI VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD);
16WINADVAPI DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A,
17 ULONG,PEXPLICIT_ACCESS_A,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
18WINADVAPI DWORD WINAPI BuildSecurityDescriptorW(PTRUSTEE_W,PTRUSTEE_W ,ULONG,PEXPLICIT_ACCESS_W,
19 ULONG,PEXPLICIT_ACCESS_W,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
20WINADVAPI VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A,LPSTR);
21WINADVAPI VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W,LPWSTR);
22WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A,POBJECTS_AND_NAME_A,SE_OBJECT_TYPE,
23 LPSTR,LPSTR,LPSTR);
24WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W,POBJECTS_AND_NAME_W,SE_OBJECT_TYPE,
25 LPWSTR,LPWSTR,LPWSTR);
26WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A,POBJECTS_AND_SID,GUID*,GUID*,PSID);
27WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W,POBJECTS_AND_SID,GUID*,GUID*,PSID);
28WINADVAPI VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A,PSID);
29WINADVAPI VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W,PSID);
30WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK,PACCESS_MASK);
31WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK,PACCESS_MASK);
32WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK);
33WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK);
34WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*);
35WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*);
36#if (_WIN32_WINNT >= 0x0501)
37WINADVAPI DWORD WINAPI GetInheritanceSourceA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMA);
38WINADVAPI DWORD WINAPI GetInheritanceSourceW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMW);
39#endif
40WINADVAPI DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
41 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
42WINADVAPI DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
43 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
44WINADVAPI DWORD WINAPI GetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,
45 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
46WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEE_A);
47WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEE_W);
48WINADVAPI LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A);
49WINADVAPI LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W);
50WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A);
51WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W);
52WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsA(PTRUSTEE_A*,PTRUSTEE_A*,PULONG,PEXPLICIT_ACCESS_A*,
53 PULONG,PEXPLICIT_ACCESS_A*,PSECURITY_DESCRIPTOR);
54WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsW(PTRUSTEE_W*,PTRUSTEE_W*,PULONG,PEXPLICIT_ACCESS_W*,
55 PULONG,PEXPLICIT_ACCESS_W*,PSECURITY_DESCRIPTOR);
56WINADVAPI DWORD WINAPI SetEntriesInAclA(ULONG,PEXPLICIT_ACCESS_A,PACL,PACL*);
57WINADVAPI DWORD WINAPI SetEntriesInAclW(ULONG,PEXPLICIT_ACCESS_W,PACL,PACL*);
58WINADVAPI DWORD WINAPI SetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
59WINADVAPI DWORD WINAPI SetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
60WINADVAPI DWORD WINAPI SetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
61WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,PTRUSTEE_A,DWORD,ACCESS_MODE,DWORD);
62WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,PTRUSTEE_W,DWORD,ACCESS_MODE,DWORD);
63WINADVAPI VOID WINAPI BuildImpersonateTrusteeA(PTRUSTEE_A,PTRUSTEE_A);
64WINADVAPI VOID WINAPI BuildImpersonateTrusteeW(PTRUSTEE_W,PTRUSTEE_W);
65WINADVAPI PTRUSTEE_A WINAPI GetMultipleTrusteeA(PTRUSTEE_A);
66WINADVAPI PTRUSTEE_W WINAPI GetMultipleTrusteeW(PTRUSTEE_W);
67WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationA(PTRUSTEE_A);
68WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW(PTRUSTEE_W);
69
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 */
113
114#ifdef __cplusplus
115}
116#endif
117#endif
Note: See TracBrowser for help on using the repository browser.