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 Library Header
6 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
11 /* INCLUDES ******************************************************************/
17 /* PSDK/NDK Headers */
18 #define WINE_STRICT_PROTOTYPES
19 #define WIN32_NO_STATUS
20 #define WIN32_LEAN_AND_MEAN
22 #define COM_NO_WINDOWS_H
26 #define NTOS_MODE_USER
27 #include <ndk/iofuncs.h>
28 #include <ndk/obfuncs.h>
29 #include <ndk/psfuncs.h>
30 #include <ndk/rtlfuncs.h>
31 #include <ndk/sefuncs.h>
33 /* this has to go after the NDK when being used with the NDK */
36 #include <services/services.h>
40 #include <wine/debug.h>
41 #include <wine/unicode.h>
43 #include "wine/crypt.h"
45 #ifndef HAS_FN_PROGRESSW
46 #define FN_PROGRESSW FN_PROGRESS
48 #ifndef HAS_FN_PROGRESSA
49 #define FN_PROGRESSA FN_PROGRESS
55 CloseLogonLsaHandle(VOID
);
59 RPC_STATUS
EvtBindRpc(LPCWSTR pszMachine
,
60 RPC_BINDING_HANDLE
* BindingHandle
);
61 RPC_STATUS
EvtUnbindRpc(RPC_BINDING_HANDLE
*BindingHandle
);
64 EvtGetLocalHandle(RPC_BINDING_HANDLE
*BindingHandle
);
65 RPC_STATUS
EvtUnbindLocalHandle(void);
69 ScmRpcStatusToWinError(RPC_STATUS Status
);
71 /* Interface to ntmarta.dll **************************************************/
73 typedef struct _NTMARTA
75 HINSTANCE hDllInstance
;
77 /* 2CC */PVOID LookupAccountTrustee
;
78 /* 2D0 */PVOID LookupAccountName
;
79 /* 2D4 */PVOID LookupAccountSid
;
80 /* 2D8 */PVOID SetEntriesInAList
;
81 /* 2DC */PVOID ConvertAccessToSecurityDescriptor
;
82 /* 2E0 */PVOID ConvertSDToAccess
;
83 /* 2E4 */PVOID ConvertAclToAccess
;
84 /* 2E8 */PVOID GetAccessForTrustee
;
85 /* 2EC */PVOID GetExplicitEntries
;
87 DWORD (WINAPI
*RewriteGetNamedRights
)(LPWSTR pObjectName
,
88 SE_OBJECT_TYPE ObjectType
,
89 SECURITY_INFORMATION SecurityInfo
,
94 PSECURITY_DESCRIPTOR
* ppSecurityDescriptor
);
97 DWORD (WINAPI
*RewriteSetNamedRights
)(LPWSTR pObjectName
,
98 SE_OBJECT_TYPE ObjectType
,
99 SECURITY_INFORMATION SecurityInfo
,
100 PSECURITY_DESCRIPTOR pSecurityDescriptor
);
103 DWORD (WINAPI
*RewriteGetHandleRights
)(HANDLE handle
,
104 SE_OBJECT_TYPE ObjectType
,
105 SECURITY_INFORMATION SecurityInfo
,
110 PSECURITY_DESCRIPTOR
* ppSecurityDescriptor
);
113 DWORD (WINAPI
*RewriteSetHandleRights
)(HANDLE handle
,
114 SE_OBJECT_TYPE ObjectType
,
115 SECURITY_INFORMATION SecurityInfo
,
116 PSECURITY_DESCRIPTOR pSecurityDescriptor
);
119 DWORD (WINAPI
*RewriteSetEntriesInAcl
)(ULONG cCountOfExplicitEntries
,
120 PEXPLICIT_ACCESS_W pListOfExplicitEntries
,
125 DWORD (WINAPI
*RewriteGetExplicitEntriesFromAcl
)(PACL pacl
,
126 PULONG pcCountOfExplicitEntries
,
127 PEXPLICIT_ACCESS_W
* pListOfExplicitEntries
);
130 DWORD (WINAPI
*TreeResetNamedSecurityInfo
)(LPWSTR pObjectName
,
131 SE_OBJECT_TYPE ObjectType
,
132 SECURITY_INFORMATION SecurityInfo
,
138 FN_PROGRESSW fnProgress
,
139 PROG_INVOKE_SETTING ProgressInvokeSetting
,
142 DWORD (WINAPI
*GetInheritanceSource
)(LPWSTR pObjectName
,
143 SE_OBJECT_TYPE ObjectType
,
144 SECURITY_INFORMATION SecurityInfo
,
146 GUID
** pObjectClassGuids
,
149 PFN_OBJECT_MGR_FUNCTS pfnArray
,
150 PGENERIC_MAPPING pGenericMapping
,
151 PINHERITED_FROMW pInheritArray
);
154 DWORD (WINAPI
*FreeIndexArray
)(PINHERITED_FROMW pInheritArray
,
156 PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL
);
157 } NTMARTA
, *PNTMARTA
;
159 #define AccLookupAccountTrustee NtMartaStatic.LookupAccountTrustee
160 #define AccLookupAccountName NtMartaStatic.LookupAccountName
161 #define AccLookupAccountSid NtMartaStatic.LookupAccountSid
162 #define AccSetEntriesInAList NtMartaStatic.SetEntriesInAList
163 #define AccConvertAccessToSecurityDescriptor NtMartaStatic.ConvertAccessToSecurityDescriptor
164 #define AccConvertSDToAccess NtMartaStatic.ConvertSDToAccess
165 #define AccConvertAclToAccess NtMartaStatic.ConvertAclToAccess
166 #define AccGetAccessForTrustee NtMartaStatic.GetAccessForTrustee
167 #define AccGetExplicitEntries NtMartaStatic.GetExplicitEntries
168 #define AccRewriteGetNamedRights NtMartaStatic.RewriteGetNamedRights
169 #define AccRewriteSetNamedRights NtMartaStatic.RewriteSetNamedRights
170 #define AccRewriteGetHandleRights NtMartaStatic.RewriteGetHandleRights
171 #define AccRewriteSetHandleRights NtMartaStatic.RewriteSetHandleRights
172 #define AccRewriteSetEntriesInAcl NtMartaStatic.RewriteSetEntriesInAcl
173 #define AccRewriteGetExplicitEntriesFromAcl NtMartaStatic.RewriteGetExplicitEntriesFromAcl
174 #define AccTreeResetNamedSecurityInfo NtMartaStatic.TreeResetNamedSecurityInfo
175 #define AccGetInheritanceSource NtMartaStatic.GetInheritanceSource
176 #define AccFreeIndexArray NtMartaStatic.FreeIndexArray
178 extern NTMARTA NtMartaStatic
;
180 DWORD
CheckNtMartaPresent(VOID
);
182 /* heap allocation helpers */
183 static void *heap_alloc( size_t len
) __WINE_ALLOC_SIZE(1);
184 static inline void *heap_alloc( size_t len
)
186 return HeapAlloc( GetProcessHeap(), 0, len
);
189 static inline BOOL
heap_free( void *mem
)
191 return HeapFree( GetProcessHeap(), 0, mem
);
194 #endif /* __ADVAPI32_H */