[ADVAPI32] Add or improve TRACE messages in the service manager functions
[reactos.git] / dll / win32 / advapi32 / advapi32.h
1 /*
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)
7 */
8 #ifndef __ADVAPI32_H
9 #define __ADVAPI32_H
10
11 /* INCLUDES ******************************************************************/
12
13 /* C Headers */
14 #include <limits.h>
15 #include <stdio.h>
16
17 /* PSDK/NDK Headers */
18 #define WINE_STRICT_PROTOTYPES
19 #define WIN32_NO_STATUS
20 #define WIN32_LEAN_AND_MEAN
21 #define _INC_WINDOWS
22 #define COM_NO_WINDOWS_H
23 #define _WMI_SOURCE_
24 #include <aclapi.h>
25 #include <winsafer.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>
32
33 /* this has to go after the NDK when being used with the NDK */
34 #include <ntsecapi.h>
35
36 #include <services/services.h>
37 #include <svcctl_c.h>
38 #include <winreg_c.h>
39
40 #include <wine/debug.h>
41 #include <wine/unicode.h>
42
43 #include "wine/crypt.h"
44
45 #ifndef HAS_FN_PROGRESSW
46 #define FN_PROGRESSW FN_PROGRESS
47 #endif
48 #ifndef HAS_FN_PROGRESSA
49 #define FN_PROGRESSA FN_PROGRESS
50 #endif
51
52 /* logon.c */
53
54 NTSTATUS
55 CloseLogonLsaHandle(VOID);
56
57 /* rpc.c */
58
59 RPC_STATUS EvtBindRpc(LPCWSTR pszMachine,
60 RPC_BINDING_HANDLE* BindingHandle);
61 RPC_STATUS EvtUnbindRpc(RPC_BINDING_HANDLE *BindingHandle);
62
63 BOOL
64 EvtGetLocalHandle(RPC_BINDING_HANDLE *BindingHandle);
65 RPC_STATUS EvtUnbindLocalHandle(void);
66
67 /* scm.c */
68 DWORD
69 ScmRpcStatusToWinError(RPC_STATUS Status);
70
71 /* Interface to ntmarta.dll **************************************************/
72
73 typedef struct _NTMARTA
74 {
75 HINSTANCE hDllInstance;
76
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;
86 /* 2F0 */
87 DWORD (WINAPI *RewriteGetNamedRights)(LPWSTR pObjectName,
88 SE_OBJECT_TYPE ObjectType,
89 SECURITY_INFORMATION SecurityInfo,
90 PSID* ppsidOwner,
91 PSID* ppsidGroup,
92 PACL* ppDacl,
93 PACL* ppSacl,
94 PSECURITY_DESCRIPTOR* ppSecurityDescriptor);
95
96 /* 2F4 */
97 DWORD (WINAPI *RewriteSetNamedRights)(LPWSTR pObjectName,
98 SE_OBJECT_TYPE ObjectType,
99 SECURITY_INFORMATION SecurityInfo,
100 PSECURITY_DESCRIPTOR pSecurityDescriptor);
101
102 /*2F8*/
103 DWORD (WINAPI *RewriteGetHandleRights)(HANDLE handle,
104 SE_OBJECT_TYPE ObjectType,
105 SECURITY_INFORMATION SecurityInfo,
106 PSID* ppsidOwner,
107 PSID* ppsidGroup,
108 PACL* ppDacl,
109 PACL* ppSacl,
110 PSECURITY_DESCRIPTOR* ppSecurityDescriptor);
111
112 /* 2FC */
113 DWORD (WINAPI *RewriteSetHandleRights)(HANDLE handle,
114 SE_OBJECT_TYPE ObjectType,
115 SECURITY_INFORMATION SecurityInfo,
116 PSECURITY_DESCRIPTOR pSecurityDescriptor);
117
118 /* 300 */
119 DWORD (WINAPI *RewriteSetEntriesInAcl)(ULONG cCountOfExplicitEntries,
120 PEXPLICIT_ACCESS_W pListOfExplicitEntries,
121 PACL OldAcl,
122 PACL* NewAcl);
123
124 /* 304 */
125 DWORD (WINAPI *RewriteGetExplicitEntriesFromAcl)(PACL pacl,
126 PULONG pcCountOfExplicitEntries,
127 PEXPLICIT_ACCESS_W* pListOfExplicitEntries);
128
129 /* 308 */
130 DWORD (WINAPI *TreeResetNamedSecurityInfo)(LPWSTR pObjectName,
131 SE_OBJECT_TYPE ObjectType,
132 SECURITY_INFORMATION SecurityInfo,
133 PSID pOwner,
134 PSID pGroup,
135 PACL pDacl,
136 PACL pSacl,
137 BOOL KeepExplicit,
138 FN_PROGRESSW fnProgress,
139 PROG_INVOKE_SETTING ProgressInvokeSetting,
140 PVOID Args);
141 /* 30C */
142 DWORD (WINAPI *GetInheritanceSource)(LPWSTR pObjectName,
143 SE_OBJECT_TYPE ObjectType,
144 SECURITY_INFORMATION SecurityInfo,
145 BOOL Container,
146 GUID** pObjectClassGuids,
147 DWORD GuidCount,
148 PACL pAcl,
149 PFN_OBJECT_MGR_FUNCTS pfnArray,
150 PGENERIC_MAPPING pGenericMapping,
151 PINHERITED_FROMW pInheritArray);
152
153 /* 310 */
154 DWORD (WINAPI *FreeIndexArray)(PINHERITED_FROMW pInheritArray,
155 USHORT AceCnt,
156 PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL);
157 } NTMARTA, *PNTMARTA;
158
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
177
178 extern NTMARTA NtMartaStatic;
179
180 DWORD CheckNtMartaPresent(VOID);
181
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 )
185 {
186 return HeapAlloc( GetProcessHeap(), 0, len );
187 }
188
189 static inline BOOL heap_free( void *mem )
190 {
191 return HeapFree( GetProcessHeap(), 0, mem );
192 }
193
194 #endif /* __ADVAPI32_H */