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)
11 /* INCLUDES ******************************************************************/
16 /* PSDK/NDK Headers */
17 #define WIN32_NO_STATUS
21 #define NTOS_MODE_USER
22 #include <ndk/ntndk.h>
24 /* this has to go after the NDK when being used with the NDK */
27 #include <services/services.h>
31 #ifndef HAS_FN_PROGRESSW
32 #define FN_PROGRESSW FN_PROGRESS
34 #ifndef HAS_FN_PROGRESSA
35 #define FN_PROGRESSA FN_PROGRESS
38 /* Interface to ntmarta.dll **************************************************/
40 typedef struct _NTMARTA
42 HINSTANCE hDllInstance
;
44 /* 2CC */PVOID LookupAccountTrustee
;
45 /* 2D0 */PVOID LookupAccountName
;
46 /* 2D4 */PVOID LookupAccountSid
;
47 /* 2D8 */PVOID SetEntriesInAList
;
48 /* 2DC */PVOID ConvertAccessToSecurityDescriptor
;
49 /* 2E0 */PVOID ConvertSDToAccess
;
50 /* 2E4 */PVOID ConvertAclToAccess
;
51 /* 2E8 */PVOID GetAccessForTrustee
;
52 /* 2EC */PVOID GetExplicitEntries
;
54 DWORD (STDCALL
*RewriteGetNamedRights
)(LPWSTR pObjectName
,
55 SE_OBJECT_TYPE ObjectType
,
56 SECURITY_INFORMATION SecurityInfo
,
61 PSECURITY_DESCRIPTOR
* ppSecurityDescriptor
);
64 DWORD (STDCALL
*RewriteSetNamedRights
)(LPWSTR pObjectName
,
65 SE_OBJECT_TYPE ObjectType
,
66 SECURITY_INFORMATION SecurityInfo
,
67 PSECURITY_DESCRIPTOR pSecurityDescriptor
);
70 DWORD (STDCALL
*RewriteGetHandleRights
)(HANDLE handle
,
71 SE_OBJECT_TYPE ObjectType
,
72 SECURITY_INFORMATION SecurityInfo
,
77 PSECURITY_DESCRIPTOR
* ppSecurityDescriptor
);
80 DWORD (STDCALL
*RewriteSetHandleRights
)(HANDLE handle
,
81 SE_OBJECT_TYPE ObjectType
,
82 SECURITY_INFORMATION SecurityInfo
,
83 PSECURITY_DESCRIPTOR pSecurityDescriptor
);
86 DWORD (STDCALL
*RewriteSetEntriesInAcl
)(ULONG cCountOfExplicitEntries
,
87 PEXPLICIT_ACCESS_W pListOfExplicitEntries
,
92 DWORD (STDCALL
*RewriteGetExplicitEntriesFromAcl
)(PACL pacl
,
93 PULONG pcCountOfExplicitEntries
,
94 PEXPLICIT_ACCESS_W
* pListOfExplicitEntries
);
97 DWORD (STDCALL
*TreeResetNamedSecurityInfo
)(LPWSTR pObjectName
,
98 SE_OBJECT_TYPE ObjectType
,
99 SECURITY_INFORMATION SecurityInfo
,
105 FN_PROGRESSW fnProgress
,
106 PROG_INVOKE_SETTING ProgressInvokeSetting
,
109 DWORD (STDCALL
*GetInheritanceSource
)(LPWSTR pObjectName
,
110 SE_OBJECT_TYPE ObjectType
,
111 SECURITY_INFORMATION SecurityInfo
,
113 GUID
** pObjectClassGuids
,
116 PFN_OBJECT_MGR_FUNCTS pfnArray
,
117 PGENERIC_MAPPING pGenericMapping
,
118 PINHERITED_FROMW pInheritArray
);
121 DWORD (STDCALL
*FreeIndexArray
)(PINHERITED_FROMW pInheritArray
,
123 PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL
);
124 } NTMARTA
, *PNTMARTA
;
126 #define AccLookupAccountTrustee NtMartaStatic.LookupAccountTrustee
127 #define AccLookupAccountName NtMartaStatic.LookupAccountName
128 #define AccLookupAccountSid NtMartaStatic.LookupAccountSid
129 #define AccSetEntriesInAList NtMartaStatic.SetEntriesInAList
130 #define AccConvertAccessToSecurityDescriptor NtMartaStatic.ConvertAccessToSecurityDescriptor
131 #define AccConvertSDToAccess NtMartaStatic.ConvertSDToAccess
132 #define AccConvertAclToAccess NtMartaStatic.ConvertAclToAccess
133 #define AccGetAccessForTrustee NtMartaStatic.GetAccessForTrustee
134 #define AccGetExplicitEntries NtMartaStatic.GetExplicitEntries
135 #define AccRewriteGetNamedRights NtMartaStatic.RewriteGetNamedRights
136 #define AccRewriteSetNamedRights NtMartaStatic.RewriteSetNamedRights
137 #define AccRewriteGetHandleRights NtMartaStatic.RewriteGetHandleRights
138 #define AccRewriteSetHandleRights NtMartaStatic.RewriteSetHandleRights
139 #define AccRewriteSetEntriesInAcl NtMartaStatic.RewriteSetEntriesInAcl
140 #define AccRewriteGetExplicitEntriesFromAcl NtMartaStatic.RewriteGetExplicitEntriesFromAcl
141 #define AccTreeResetNamedSecurityInfo NtMartaStatic.TreeResetNamedSecurityInfo
142 #define AccGetInheritanceSource NtMartaStatic.GetInheritanceSource
143 #define AccFreeIndexArray NtMartaStatic.FreeIndexArray
145 extern NTMARTA NtMartaStatic
;
147 DWORD
CheckNtMartaPresent(VOID
);
149 #endif /* __ADVAPI32_H */