2004-06-14 18:54:18 +02:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2004 Mike McCormack
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __WINE_ACLAPI_H
|
|
|
|
#define __WINE_ACLAPI_H
|
|
|
|
|
|
|
|
#ifndef __WINESRC__
|
|
|
|
# include <windows.h>
|
|
|
|
#endif
|
|
|
|
#include <accctrl.h>
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2005-06-07 22:06:13 +02:00
|
|
|
DWORD WINAPI GetExplicitEntriesFromAclA( PACL, PULONG, PEXPLICIT_ACCESS_A* );
|
|
|
|
DWORD WINAPI GetExplicitEntriesFromAclW( PACL, PULONG, PEXPLICIT_ACCESS_W* );
|
|
|
|
#define GetExplicitEntriesFromAcl WINELIB_NAME_AW(GetExplicitEntriesFromAcl)
|
|
|
|
|
2004-12-22 19:17:56 +01:00
|
|
|
DWORD WINAPI GetSecurityInfo( HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
|
|
|
|
PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
|
|
|
|
|
2005-11-21 13:06:00 +01:00
|
|
|
DWORD WINAPI GetSecurityInfoExA(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
|
|
|
|
LPCSTR, LPCSTR, PACTRL_ACCESSA*, PACTRL_AUDITA*, LPSTR*, LPSTR*);
|
|
|
|
DWORD WINAPI GetSecurityInfoExW(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
|
|
|
|
LPCWSTR, LPCWSTR, PACTRL_ACCESSW*, PACTRL_AUDITW*, LPWSTR*, LPWSTR*);
|
|
|
|
#define GetSecurityInfoEx WINELIB_NAME_AW(GetSecurityInfoEx)
|
|
|
|
|
2004-06-14 18:54:18 +02:00
|
|
|
DWORD WINAPI GetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
|
|
|
|
PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
|
|
|
|
DWORD WINAPI GetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
|
|
|
|
PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
|
|
|
|
#define GetNamedSecurityInfo WINELIB_NAME_AW(GetNamedSecurityInfo)
|
|
|
|
|
|
|
|
DWORD WINAPI SetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE,
|
|
|
|
SECURITY_INFORMATION, PSID, PSID, PACL, PACL);
|
|
|
|
DWORD WINAPI SetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE,
|
|
|
|
SECURITY_INFORMATION, PSID, PSID, PACL, PACL);
|
|
|
|
#define SetNamedSecurityInfo WINELIB_NAME_AW(SetNamedSecurityInfo)
|
|
|
|
|
2004-07-06 20:44:18 +02:00
|
|
|
DWORD WINAPI SetEntriesInAclA( ULONG, PEXPLICIT_ACCESSA, PACL, PACL*);
|
|
|
|
DWORD WINAPI SetEntriesInAclW( ULONG, PEXPLICIT_ACCESSW, PACL, PACL*);
|
|
|
|
#define SetEntriesInAcl WINELIB_NAME_AW(SetEntriesInAcl)
|
|
|
|
|
2005-03-21 11:32:45 +01:00
|
|
|
DWORD WINAPI SetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
|
|
|
|
PSID, PSID, PACL, PACL);
|
|
|
|
|
2004-07-06 20:44:18 +02:00
|
|
|
TRUSTEE_FORM WINAPI GetTrusteeFormA( PTRUSTEEA );
|
|
|
|
TRUSTEE_FORM WINAPI GetTrusteeFormW( PTRUSTEEW );
|
|
|
|
#define GetTrusteeForm WINELIB_NAME_AW(GetTrusteeForm)
|
|
|
|
|
|
|
|
LPSTR WINAPI GetTrusteeNameA( PTRUSTEEA );
|
|
|
|
LPWSTR WINAPI GetTrusteeNameW( PTRUSTEEW );
|
|
|
|
#define GetTrusteeName WINELIB_NAME_AW(GetTrusteeName)
|
|
|
|
|
|
|
|
TRUSTEE_TYPE WINAPI GetTrusteeTypeA( PTRUSTEEA );
|
|
|
|
TRUSTEE_TYPE WINAPI GetTrusteeTypeW( PTRUSTEEW );
|
|
|
|
#define GetTrusteeType WINELIB_NAME_AW(GetTrusteeType)
|
|
|
|
|
2005-11-21 13:06:00 +01:00
|
|
|
DWORD WINAPI BuildSecurityDescriptorA( PTRUSTEEA, PTRUSTEEA, ULONG, PEXPLICIT_ACCESS_A,
|
|
|
|
ULONG, PEXPLICIT_ACCESS_A,
|
|
|
|
PSECURITY_DESCRIPTOR, PULONG,
|
|
|
|
PSECURITY_DESCRIPTOR* );
|
|
|
|
DWORD WINAPI BuildSecurityDescriptorW( PTRUSTEEW, PTRUSTEEW, ULONG, PEXPLICIT_ACCESS_W,
|
|
|
|
ULONG, PEXPLICIT_ACCESS_W,
|
|
|
|
PSECURITY_DESCRIPTOR, PULONG,
|
|
|
|
PSECURITY_DESCRIPTOR* );
|
|
|
|
#define BuildSecurityDescriptor WINELIB_NAME_AW(BuildSecurityDescriptor)
|
|
|
|
|
2004-07-06 20:44:18 +02:00
|
|
|
void WINAPI BuildTrusteeWithNameA( PTRUSTEEA, LPSTR );
|
|
|
|
void WINAPI BuildTrusteeWithNameW( PTRUSTEEW, LPWSTR );
|
|
|
|
#define BuildTrusteeWithName WINELIB_NAME_AW(BuildTrusteeWithName)
|
|
|
|
|
Stub implementations for AdjustTokenGroups, AreAllAccessesGranted,
CreatePrivateObjectSecurity, CreateProcessAsUser{A,W},
DestroyPrivateObjectSecurity, DuplicateToken{,Ex},
EnumDependentServices{A,W}, GetEffectiveRightsFromAcl{A,W},
ConvertStringSecurityDescriptorToSecurityDescriptorA. Implementations
for BuildExplicitAccessWithName{A,W},
BuildTrusteeWithObjectsAndName{A,W},
BuildTrusteeWithObjectsAndSid{A,W}.
Correct prototype for InitializeAcl, RtlCopySid and RtlGetAce.
Use the CallWin32ToNt macro only with functions that return an
NTSTATUS.
2004-12-21 17:16:10 +01:00
|
|
|
VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEEA, POBJECTS_AND_NAME_A,
|
|
|
|
SE_OBJECT_TYPE, LPSTR, LPSTR, LPSTR);
|
|
|
|
VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEEW, POBJECTS_AND_NAME_W,
|
|
|
|
SE_OBJECT_TYPE, LPWSTR, LPWSTR, LPWSTR);
|
2004-07-06 20:44:18 +02:00
|
|
|
#define BuildTrusteeWithObjectsAndName WINELIB_NAME_AW(BuildTrusteeWithObjectsAndName)
|
|
|
|
|
Stub implementations for AdjustTokenGroups, AreAllAccessesGranted,
CreatePrivateObjectSecurity, CreateProcessAsUser{A,W},
DestroyPrivateObjectSecurity, DuplicateToken{,Ex},
EnumDependentServices{A,W}, GetEffectiveRightsFromAcl{A,W},
ConvertStringSecurityDescriptorToSecurityDescriptorA. Implementations
for BuildExplicitAccessWithName{A,W},
BuildTrusteeWithObjectsAndName{A,W},
BuildTrusteeWithObjectsAndSid{A,W}.
Correct prototype for InitializeAcl, RtlCopySid and RtlGetAce.
Use the CallWin32ToNt macro only with functions that return an
NTSTATUS.
2004-12-21 17:16:10 +01:00
|
|
|
VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEEA, POBJECTS_AND_SID, GUID*, GUID*, PSID);
|
|
|
|
VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEEW, POBJECTS_AND_SID, GUID*, GUID*, PSID);
|
2004-07-06 20:44:18 +02:00
|
|
|
#define BuildTrusteeWithObjectsAndSid WINELIB_NAME_AW(BuildTrusteeWithObjectsAndSid)
|
|
|
|
|
Stub implementations for AdjustTokenGroups, AreAllAccessesGranted,
CreatePrivateObjectSecurity, CreateProcessAsUser{A,W},
DestroyPrivateObjectSecurity, DuplicateToken{,Ex},
EnumDependentServices{A,W}, GetEffectiveRightsFromAcl{A,W},
ConvertStringSecurityDescriptorToSecurityDescriptorA. Implementations
for BuildExplicitAccessWithName{A,W},
BuildTrusteeWithObjectsAndName{A,W},
BuildTrusteeWithObjectsAndSid{A,W}.
Correct prototype for InitializeAcl, RtlCopySid and RtlGetAce.
Use the CallWin32ToNt macro only with functions that return an
NTSTATUS.
2004-12-21 17:16:10 +01:00
|
|
|
VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESSA, LPSTR, DWORD, ACCESS_MODE, DWORD);
|
|
|
|
VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESSW, LPWSTR, DWORD, ACCESS_MODE, DWORD);
|
|
|
|
#define BuildExplicitAccessWithName WINELIB_NAME_AW(BuildExplicitAccessWithName)
|
|
|
|
|
2004-08-16 23:07:50 +02:00
|
|
|
VOID WINAPI BuildTrusteeWithSidA(PTRUSTEEA pTrustee, PSID pSid);
|
|
|
|
VOID WINAPI BuildTrusteeWithSidW(PTRUSTEEW pTrustee, PSID pSid);
|
|
|
|
#define BuildTrusteeWithSid WINELIB_NAME_AW(BuildTrusteeWithSid)
|
|
|
|
|
2005-06-13 12:04:20 +02:00
|
|
|
DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK);
|
|
|
|
DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK);
|
|
|
|
#define GetEffectiveRightsFromAcl WINELIB_NAME_AW(GetEffectiveRightsFromAcl)
|
|
|
|
|
2004-06-14 18:54:18 +02:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* __WINE_ACLAPI_H */
|