2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS System Libraries
4 * FILE: lib/advapi32/advapi32.h
5 * PURPOSE: Win32 Advanced API Libary Header
6 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
9 /* INCLUDES ******************************************************************/
14 /* PSDK/NDK Headers */
18 #define NTOS_MODE_USER
19 #include <ndk/ntndk.h>
21 /* this has to go after the NDK when being used with the NDK */
24 #ifndef HAS_FN_PROGRESSW
25 #define FN_PROGRESSW FN_PROGRESS
27 #ifndef HAS_FN_PROGRESSA
28 #define FN_PROGRESSA FN_PROGRESS
31 /* Interface to ntmarta.dll **************************************************/
33 typedef struct _NTMARTA
35 HINSTANCE hDllInstance
;
37 /* 2CC */PVOID LookupAccountTrustee
;
38 /* 2D0 */PVOID LookupAccountName
;
39 /* 2D4 */PVOID LookupAccountSid
;
40 /* 2D8 */PVOID SetEntriesInAList
;
41 /* 2DC */PVOID ConvertAccessToSecurityDescriptor
;
42 /* 2E0 */PVOID ConvertSDToAccess
;
43 /* 2E4 */PVOID ConvertAclToAccess
;
44 /* 2E8 */PVOID GetAccessForTrustee
;
45 /* 2EC */PVOID GetExplicitEntries
;
47 DWORD (STDCALL
*RewriteGetNamedRights
)(LPWSTR pObjectName
,
48 SE_OBJECT_TYPE ObjectType
,
49 SECURITY_INFORMATION SecurityInfo
,
54 PSECURITY_DESCRIPTOR
* ppSecurityDescriptor
);
57 DWORD (STDCALL
*RewriteSetNamedRights
)(LPWSTR pObjectName
,
58 SE_OBJECT_TYPE ObjectType
,
59 SECURITY_INFORMATION SecurityInfo
,
60 PSECURITY_DESCRIPTOR pSecurityDescriptor
);
63 DWORD (STDCALL
*RewriteGetHandleRights
)(HANDLE handle
,
64 SE_OBJECT_TYPE ObjectType
,
65 SECURITY_INFORMATION SecurityInfo
,
70 PSECURITY_DESCRIPTOR
* ppSecurityDescriptor
);
73 DWORD (STDCALL
*RewriteSetHandleRights
)(HANDLE handle
,
74 SE_OBJECT_TYPE ObjectType
,
75 SECURITY_INFORMATION SecurityInfo
,
76 PSECURITY_DESCRIPTOR pSecurityDescriptor
);
79 DWORD (STDCALL
*RewriteSetEntriesInAcl
)(ULONG cCountOfExplicitEntries
,
80 PEXPLICIT_ACCESS_W pListOfExplicitEntries
,
85 DWORD (STDCALL
*RewriteGetExplicitEntriesFromAcl
)(PACL pacl
,
86 PULONG pcCountOfExplicitEntries
,
87 PEXPLICIT_ACCESS_W
* pListOfExplicitEntries
);
90 DWORD (STDCALL
*TreeResetNamedSecurityInfo
)(LPWSTR pObjectName
,
91 SE_OBJECT_TYPE ObjectType
,
92 SECURITY_INFORMATION SecurityInfo
,
98 FN_PROGRESSW fnProgress
,
99 PROG_INVOKE_SETTING ProgressInvokeSetting
,
102 DWORD (STDCALL
*GetInheritanceSource
)(LPWSTR pObjectName
,
103 SE_OBJECT_TYPE ObjectType
,
104 SECURITY_INFORMATION SecurityInfo
,
106 GUID
** pObjectClassGuids
,
109 PFN_OBJECT_MGR_FUNCTS pfnArray
,
110 PGENERIC_MAPPING pGenericMapping
,
111 PINHERITED_FROMW pInheritArray
);
114 DWORD (STDCALL
*FreeIndexArray
)(PINHERITED_FROMW pInheritArray
,
116 PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL
);
117 } NTMARTA
, *PNTMARTA
;
119 #define AccLookupAccountTrustee NtMartaStatic.LookupAccountTrustee
120 #define AccLookupAccountName NtMartaStatic.LookupAccountName
121 #define AccLookupAccountSid NtMartaStatic.LookupAccountSid
122 #define AccSetEntriesInAList NtMartaStatic.SetEntriesInAList
123 #define AccConvertAccessToSecurityDescriptor NtMartaStatic.ConvertAccessToSecurityDescriptor
124 #define AccConvertSDToAccess NtMartaStatic.ConvertSDToAccess
125 #define AccConvertAclToAccess NtMartaStatic.ConvertAclToAccess
126 #define AccGetAccessForTrustee NtMartaStatic.GetAccessForTrustee
127 #define AccGetExplicitEntries NtMartaStatic.GetExplicitEntries
128 #define AccRewriteGetNamedRights NtMartaStatic.RewriteGetNamedRights
129 #define AccRewriteSetNamedRights NtMartaStatic.RewriteSetNamedRights
130 #define AccRewriteGetHandleRights NtMartaStatic.RewriteGetHandleRights
131 #define AccRewriteSetHandleRights NtMartaStatic.RewriteSetHandleRights
132 #define AccRewriteSetEntriesInAcl NtMartaStatic.RewriteSetEntriesInAcl
133 #define AccRewriteGetExplicitEntriesFromAcl NtMartaStatic.RewriteGetExplicitEntriesFromAcl
134 #define AccTreeResetNamedSecurityInfo NtMartaStatic.TreeResetNamedSecurityInfo
135 #define AccGetInheritanceSource NtMartaStatic.GetInheritanceSource
136 #define AccFreeIndexArray NtMartaStatic.FreeIndexArray
138 extern NTMARTA NtMartaStatic
;
140 DWORD
CheckNtMartaPresent(VOID
);