2 * Copyright (C) 2004 Mike McCormack
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_ACLAPI_H
20 #define __WINE_ACLAPI_H
31 DWORD WINAPI
GetExplicitEntriesFromAclA( PACL
, PULONG
, PEXPLICIT_ACCESS_A
* );
32 DWORD WINAPI
GetExplicitEntriesFromAclW( PACL
, PULONG
, PEXPLICIT_ACCESS_W
* );
33 #define GetExplicitEntriesFromAcl WINELIB_NAME_AW(GetExplicitEntriesFromAcl)
35 DWORD WINAPI
GetSecurityInfo( HANDLE
, SE_OBJECT_TYPE
, SECURITY_INFORMATION
,
36 PSID
*, PSID
*, PACL
*, PACL
*, PSECURITY_DESCRIPTOR
*);
38 DWORD WINAPI
GetSecurityInfoExA(HANDLE
, SE_OBJECT_TYPE
, SECURITY_INFORMATION
,
39 LPCSTR
, LPCSTR
, PACTRL_ACCESSA
*, PACTRL_AUDITA
*, LPSTR
*, LPSTR
*);
40 DWORD WINAPI
GetSecurityInfoExW(HANDLE
, SE_OBJECT_TYPE
, SECURITY_INFORMATION
,
41 LPCWSTR
, LPCWSTR
, PACTRL_ACCESSW
*, PACTRL_AUDITW
*, LPWSTR
*, LPWSTR
*);
42 #define GetSecurityInfoEx WINELIB_NAME_AW(GetSecurityInfoEx)
44 DWORD WINAPI
GetNamedSecurityInfoA(LPSTR
, SE_OBJECT_TYPE
, SECURITY_INFORMATION
,
45 PSID
*, PSID
*, PACL
*, PACL
*, PSECURITY_DESCRIPTOR
*);
46 DWORD WINAPI
GetNamedSecurityInfoW(LPWSTR
, SE_OBJECT_TYPE
, SECURITY_INFORMATION
,
47 PSID
*, PSID
*, PACL
*, PACL
*, PSECURITY_DESCRIPTOR
*);
48 #define GetNamedSecurityInfo WINELIB_NAME_AW(GetNamedSecurityInfo)
50 DWORD WINAPI
SetNamedSecurityInfoA(LPSTR
, SE_OBJECT_TYPE
,
51 SECURITY_INFORMATION
, PSID
, PSID
, PACL
, PACL
);
52 DWORD WINAPI
SetNamedSecurityInfoW(LPWSTR
, SE_OBJECT_TYPE
,
53 SECURITY_INFORMATION
, PSID
, PSID
, PACL
, PACL
);
54 #define SetNamedSecurityInfo WINELIB_NAME_AW(SetNamedSecurityInfo)
56 DWORD WINAPI
SetEntriesInAclA( ULONG
, PEXPLICIT_ACCESSA
, PACL
, PACL
*);
57 DWORD WINAPI
SetEntriesInAclW( ULONG
, PEXPLICIT_ACCESSW
, PACL
, PACL
*);
58 #define SetEntriesInAcl WINELIB_NAME_AW(SetEntriesInAcl)
60 DWORD WINAPI
SetSecurityInfo(HANDLE
, SE_OBJECT_TYPE
, SECURITY_INFORMATION
,
61 PSID
, PSID
, PACL
, PACL
);
63 TRUSTEE_FORM WINAPI
GetTrusteeFormA( PTRUSTEEA
);
64 TRUSTEE_FORM WINAPI
GetTrusteeFormW( PTRUSTEEW
);
65 #define GetTrusteeForm WINELIB_NAME_AW(GetTrusteeForm)
67 LPSTR WINAPI
GetTrusteeNameA( PTRUSTEEA
);
68 LPWSTR WINAPI
GetTrusteeNameW( PTRUSTEEW
);
69 #define GetTrusteeName WINELIB_NAME_AW(GetTrusteeName)
71 TRUSTEE_TYPE WINAPI
GetTrusteeTypeA( PTRUSTEEA
);
72 TRUSTEE_TYPE WINAPI
GetTrusteeTypeW( PTRUSTEEW
);
73 #define GetTrusteeType WINELIB_NAME_AW(GetTrusteeType)
75 DWORD WINAPI
BuildSecurityDescriptorA( PTRUSTEEA
, PTRUSTEEA
, ULONG
, PEXPLICIT_ACCESS_A
,
76 ULONG
, PEXPLICIT_ACCESS_A
,
77 PSECURITY_DESCRIPTOR
, PULONG
,
78 PSECURITY_DESCRIPTOR
* );
79 DWORD WINAPI
BuildSecurityDescriptorW( PTRUSTEEW
, PTRUSTEEW
, ULONG
, PEXPLICIT_ACCESS_W
,
80 ULONG
, PEXPLICIT_ACCESS_W
,
81 PSECURITY_DESCRIPTOR
, PULONG
,
82 PSECURITY_DESCRIPTOR
* );
83 #define BuildSecurityDescriptor WINELIB_NAME_AW(BuildSecurityDescriptor)
85 void WINAPI
BuildTrusteeWithNameA( PTRUSTEEA
, LPSTR
);
86 void WINAPI
BuildTrusteeWithNameW( PTRUSTEEW
, LPWSTR
);
87 #define BuildTrusteeWithName WINELIB_NAME_AW(BuildTrusteeWithName)
89 VOID WINAPI
BuildTrusteeWithObjectsAndNameA(PTRUSTEEA
, POBJECTS_AND_NAME_A
,
90 SE_OBJECT_TYPE
, LPSTR
, LPSTR
, LPSTR
);
91 VOID WINAPI
BuildTrusteeWithObjectsAndNameW(PTRUSTEEW
, POBJECTS_AND_NAME_W
,
92 SE_OBJECT_TYPE
, LPWSTR
, LPWSTR
, LPWSTR
);
93 #define BuildTrusteeWithObjectsAndName WINELIB_NAME_AW(BuildTrusteeWithObjectsAndName)
95 VOID WINAPI
BuildTrusteeWithObjectsAndSidA(PTRUSTEEA
, POBJECTS_AND_SID
, GUID
*, GUID
*, PSID
);
96 VOID WINAPI
BuildTrusteeWithObjectsAndSidW(PTRUSTEEW
, POBJECTS_AND_SID
, GUID
*, GUID
*, PSID
);
97 #define BuildTrusteeWithObjectsAndSid WINELIB_NAME_AW(BuildTrusteeWithObjectsAndSid)
99 VOID WINAPI
BuildExplicitAccessWithNameA(PEXPLICIT_ACCESSA
, LPSTR
, DWORD
, ACCESS_MODE
, DWORD
);
100 VOID WINAPI
BuildExplicitAccessWithNameW(PEXPLICIT_ACCESSW
, LPWSTR
, DWORD
, ACCESS_MODE
, DWORD
);
101 #define BuildExplicitAccessWithName WINELIB_NAME_AW(BuildExplicitAccessWithName)
103 VOID WINAPI
BuildTrusteeWithSidA(PTRUSTEEA pTrustee
, PSID pSid
);
104 VOID WINAPI
BuildTrusteeWithSidW(PTRUSTEEW pTrustee
, PSID pSid
);
105 #define BuildTrusteeWithSid WINELIB_NAME_AW(BuildTrusteeWithSid)
107 DWORD WINAPI
GetEffectiveRightsFromAclA(PACL
,PTRUSTEE_A
,PACCESS_MASK
);
108 DWORD WINAPI
GetEffectiveRightsFromAclW(PACL
,PTRUSTEE_W
,PACCESS_MASK
);
109 #define GetEffectiveRightsFromAcl WINELIB_NAME_AW(GetEffectiveRightsFromAcl)
115 #endif /* __WINE_ACLAPI_H */