144 lines
10 KiB
C
144 lines
10 KiB
C
/*
|
|
* aclapi.h Access control functions
|
|
*
|
|
* =========================================================================
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
|
*
|
|
* This file is automatically generated. Do not edit directly.
|
|
*
|
|
* =========================================================================
|
|
*/
|
|
|
|
#ifndef __ACCESS_CONTROL_API__
|
|
#define __ACCESS_CONTROL_API__
|
|
|
|
#ifndef _ENABLE_AUTODEPEND
|
|
#pragma read_only_file;
|
|
#endif
|
|
|
|
#include <windows.h>
|
|
#include <accctrl.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Progress callback function */
|
|
typedef VOID (*FN_PROGRESS)( LPWSTR, DWORD, PPROG_INVOKE_SETTING, PVOID, BOOL );
|
|
|
|
/* Functions in ADVAPI32.DLL */
|
|
WINADVAPI VOID WINAPI BuildExplicitAccessWithNameA( PEXPLICIT_ACCESS_A, LPSTR, DWORD, ACCESS_MODE, DWORD );
|
|
WINADVAPI VOID WINAPI BuildExplicitAccessWithNameW( PEXPLICIT_ACCESS_W, LPWSTR, DWORD, ACCESS_MODE, DWORD );
|
|
WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameA( PEXPLICIT_ACCESS_A, LPSTR, PTRUSTEE_A, DWORD, ACCESS_MODE, DWORD );
|
|
WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameW( PEXPLICIT_ACCESS_W, LPWSTR, PTRUSTEE_W, DWORD, ACCESS_MODE, DWORD );
|
|
WINADVAPI VOID WINAPI BuildImpersonateTrusteeA( PTRUSTEE_A, PTRUSTEE_A );
|
|
WINADVAPI VOID WINAPI BuildImpersonateTrusteeW( PTRUSTEE_W, PTRUSTEE_W );
|
|
WINADVAPI DWORD WINAPI BuildSecurityDescriptorA( PTRUSTEE_A, PTRUSTEE_A, ULONG, PEXPLICIT_ACCESS_A, ULONG, PEXPLICIT_ACCESS_A, PSECURITY_DESCRIPTOR, PULONG, PSECURITY_DESCRIPTOR * );
|
|
WINADVAPI DWORD WINAPI BuildSecurityDescriptorW( PTRUSTEE_W, PTRUSTEE_W, ULONG, PEXPLICIT_ACCESS_W, ULONG, PEXPLICIT_ACCESS_W, PSECURITY_DESCRIPTOR, PULONG, PSECURITY_DESCRIPTOR * );
|
|
WINADVAPI VOID WINAPI BuildTrusteeWithNameA( PTRUSTEE_A, LPSTR );
|
|
WINADVAPI VOID WINAPI BuildTrusteeWithNameW( PTRUSTEE_W, LPWSTR );
|
|
WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameA( PTRUSTEE_A, POBJECTS_AND_NAME_A, SE_OBJECT_TYPE, LPSTR, LPSTR, LPSTR );
|
|
WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameW( PTRUSTEE_W, POBJECTS_AND_NAME_W, SE_OBJECT_TYPE, LPWSTR, LPWSTR, LPWSTR );
|
|
WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidA( PTRUSTEE_A, POBJECTS_AND_SID, GUID *, GUID *, PSID );
|
|
WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidW( PTRUSTEE_W, POBJECTS_AND_SID, GUID *, GUID *, PSID );
|
|
WINADVAPI VOID WINAPI BuildTrusteeWithSidA( PTRUSTEE_A, PSID );
|
|
WINADVAPI VOID WINAPI BuildTrusteeWithSidW( PTRUSTEE_W, PSID );
|
|
WINADVAPI DWORD WINAPI FreeInheritedFromArray( PINHERITED_FROMW, USHORT, PFN_OBJECT_MGR_FUNCTS );
|
|
WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclA( PACL, PTRUSTEE_A, PACCESS_MASK, PACCESS_MASK );
|
|
WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclW( PACL, PTRUSTEE_W, PACCESS_MASK, PACCESS_MASK );
|
|
WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclA( PACL, PTRUSTEE_A, PACCESS_MASK );
|
|
WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclW( PACL, PTRUSTEE_W, PACCESS_MASK );
|
|
WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclA( PACL, PULONG, PEXPLICIT_ACCESS_A * );
|
|
WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclW( PACL, PULONG, PEXPLICIT_ACCESS_W * );
|
|
WINADVAPI DWORD WINAPI GetInheritanceSourceA( LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, BOOL, GUID **, DWORD, PACL, PFN_OBJECT_MGR_FUNCTS, PGENERIC_MAPPING, PINHERITED_FROMA );
|
|
WINADVAPI DWORD WINAPI GetInheritanceSourceW( LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, BOOL, GUID **, DWORD, PACL, PFN_OBJECT_MGR_FUNCTS, PGENERIC_MAPPING, PINHERITED_FROMW );
|
|
WINADVAPI PTRUSTEE_A WINAPI GetMultipleTrusteeA( PTRUSTEE_A );
|
|
WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationA( PTRUSTEE_A );
|
|
WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW( PTRUSTEE_W );
|
|
WINADVAPI PTRUSTEE_W WINAPI GetMultipleTrusteeW( PTRUSTEE_W );
|
|
WINADVAPI DWORD WINAPI GetNamedSecurityInfoA( LPCSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, const PSID *, const PSID *, const PACL *, const PACL *, PSECURITY_DESCRIPTOR * );
|
|
WINADVAPI DWORD WINAPI GetNamedSecurityInfoW( LPCWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, const PSID *, const PSID *, const PACL *, const PACL *, PSECURITY_DESCRIPTOR * );
|
|
WINADVAPI DWORD WINAPI GetSecurityInfo( HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID *, PSID *, PACL *, PACL *, PSECURITY_DESCRIPTOR * );
|
|
WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormA( PTRUSTEE_A );
|
|
WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormW( PTRUSTEE_W );
|
|
WINADVAPI LPSTR WINAPI GetTrusteeNameA( PTRUSTEE_A );
|
|
WINADVAPI LPWSTR WINAPI GetTrusteeNameW( PTRUSTEE_W );
|
|
WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeA( PTRUSTEE_A );
|
|
WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeW( PTRUSTEE_W );
|
|
WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsA( PTRUSTEE_A *, PTRUSTEE_A *, PULONG, PEXPLICIT_ACCESS_A *, PULONG, PEXPLICIT_ACCESS_A *, PSECURITY_DESCRIPTOR );
|
|
WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsW( PTRUSTEE_W *, PTRUSTEE_W *, PULONG, PEXPLICIT_ACCESS_W *, PULONG, PEXPLICIT_ACCESS_W *, PSECURITY_DESCRIPTOR );
|
|
WINADVAPI DWORD WINAPI SetEntriesInAclA( ULONG, PEXPLICIT_ACCESS_A, PACL, PACL * );
|
|
WINADVAPI DWORD WINAPI SetEntriesInAclW( ULONG, PEXPLICIT_ACCESS_W, PACL, PACL * );
|
|
WINADVAPI DWORD WINAPI SetNamedSecurityInfoA( LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL );
|
|
WINADVAPI DWORD WINAPI SetNamedSecurityInfoW( LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL );
|
|
WINADVAPI DWORD WINAPI SetSecurityInfo( HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL );
|
|
WINADVAPI DWORD WINAPI TreeResetNamedSecurityInfoA( LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL, BOOL, FN_PROGRESS, PROG_INVOKE_SETTING, PVOID );
|
|
WINADVAPI DWORD WINAPI TreeResetNamedSecurityInfoW( LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL, BOOL, FN_PROGRESS, PROG_INVOKE_SETTING, PVOID );
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
WINADVAPI DWORD WINAPI TreeSetNamedSecurityInfoA( LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL, DWORD, FN_PROGRESS, PROG_INVOKE_SETTING, PVOID );
|
|
WINADVAPI DWORD WINAPI TreeSetNamedSecurityInfoW( LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL, DWORD, FN_PROGRESS, PROG_INVOKE_SETTING, PVOID );
|
|
#endif
|
|
|
|
/* Functions implemented as macros */
|
|
#define AccProvInit( x )
|
|
|
|
/* Map generic function names to the appropriate ANSI or Unicode version. */
|
|
#ifdef UNICODE
|
|
#define BuildExplicitAccessWithName BuildExplicitAccessWithNameW
|
|
#define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameW
|
|
#define BuildImpersonateTrustee BuildImpersonateTrusteeW
|
|
#define BuildSecurityDescriptor BuildSecurityDescriptorW
|
|
#define BuildTrusteeWithName BuildTrusteeWithNameW
|
|
#define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameW
|
|
#define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidW
|
|
#define BuildTrusteeWithSid BuildTrusteeWithSidW
|
|
#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclW
|
|
#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclW
|
|
#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclW
|
|
#define GetInheritanceSource GetInheritanceSourceW
|
|
#define GetMultipleTrustee GetMultipleTrusteeW
|
|
#define GetMultipleTrusteeOperation GetMultipleTrusteeOperationW
|
|
#define GetNamedSecurityInfo GetNamedSecurityInfoW
|
|
#define GetTrusteeForm GetTrusteeFormW
|
|
#define GetTrusteeName GetTrusteeNameW
|
|
#define GetTrusteeType GetTrusteeTypeW
|
|
#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsW
|
|
#define SetEntriesInAcl SetEntriesInAclW
|
|
#define SetNamedSecurityInfo SetNamedSecurityInfoW
|
|
#define TreeResetNamedSecurityInfo TreeResetNamedSecurityInfoW
|
|
#define TreeSetNamedSecurityInfo TreeSetNamedSecurityInfoW
|
|
#else
|
|
#define BuildExplicitAccessWithName BuildExplicitAccessWithNameA
|
|
#define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameA
|
|
#define BuildImpersonateTrustee BuildImpersonateTrusteeA
|
|
#define BuildSecurityDescriptor BuildSecurityDescriptorA
|
|
#define BuildTrusteeWithName BuildTrusteeWithNameA
|
|
#define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameA
|
|
#define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidA
|
|
#define BuildTrusteeWithSid BuildTrusteeWithSidA
|
|
#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclA
|
|
#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclA
|
|
#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclA
|
|
#define GetInheritanceSource GetInheritanceSourceA
|
|
#define GetMultipleTrustee GetMultipleTrusteeA
|
|
#define GetMultipleTrusteeOperation GetMultipleTrusteeOperationA
|
|
#define GetNamedSecurityInfo GetNamedSecurityInfoA
|
|
#define GetTrusteeForm GetTrusteeFormA
|
|
#define GetTrusteeName GetTrusteeNameA
|
|
#define GetTrusteeType GetTrusteeTypeA
|
|
#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsA
|
|
#define SetEntriesInAcl SetEntriesInAclA
|
|
#define SetNamedSecurityInfo SetNamedSecurityInfoA
|
|
#define TreeResetNamedSecurityInfo TreeResetNamedSecurityInfoA
|
|
#define TreeSetNamedSecurityInfo TreeSetNamedSecurityInfoA
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* __ACCESS_CONTROL_API__ */
|