* Sync with recent trunk (r52637).
[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 Libary 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 WIN32_NO_STATUS
19 #define _WMI_SOURCE_
20 #include <windows.h>
21 #include <accctrl.h>
22 #include <aclapi.h>
23 #include <wmistr.h>
24 #include <evntrace.h>
25 #include <winsafer.h>
26 #include <sddl.h>
27 #define NTOS_MODE_USER
28 #include <ndk/ntndk.h>
29
30 /* this has to go after the NDK when being used with the NDK */
31 #include <ntsecapi.h>
32
33 #include <services/services.h>
34 #include "svcctl_c.h"
35 #include "lsa_c.h"
36 #include "eventlogrpc_c.h"
37
38 #ifndef HAS_FN_PROGRESSW
39 #define FN_PROGRESSW FN_PROGRESS
40 #endif
41 #ifndef HAS_FN_PROGRESSA
42 #define FN_PROGRESSA FN_PROGRESS
43 #endif
44
45 /* sid.c */
46
47 BOOL ADVAPI_GetComputerSid(PSID sid);
48
49 /* rpc.c */
50
51 RPC_STATUS EvtBindRpc(LPCWSTR pszMachine,
52 RPC_BINDING_HANDLE* BindingHandle);
53 RPC_STATUS EvtUnbindRpc(RPC_BINDING_HANDLE *BindingHandle);
54
55 BOOL
56 EvtGetLocalHandle(RPC_BINDING_HANDLE *BindingHandle);
57 RPC_STATUS EvtUnbindLocalHandle(void);
58
59 /* scm.c */
60 DWORD
61 ScmRpcStatusToWinError(RPC_STATUS Status);
62
63 /* Interface to ntmarta.dll **************************************************/
64
65 typedef struct _NTMARTA
66 {
67 HINSTANCE hDllInstance;
68
69 /* 2CC */PVOID LookupAccountTrustee;
70 /* 2D0 */PVOID LookupAccountName;
71 /* 2D4 */PVOID LookupAccountSid;
72 /* 2D8 */PVOID SetEntriesInAList;
73 /* 2DC */PVOID ConvertAccessToSecurityDescriptor;
74 /* 2E0 */PVOID ConvertSDToAccess;
75 /* 2E4 */PVOID ConvertAclToAccess;
76 /* 2E8 */PVOID GetAccessForTrustee;
77 /* 2EC */PVOID GetExplicitEntries;
78 /* 2F0 */
79 DWORD (WINAPI *RewriteGetNamedRights)(LPWSTR pObjectName,
80 SE_OBJECT_TYPE ObjectType,
81 SECURITY_INFORMATION SecurityInfo,
82 PSID* ppsidOwner,
83 PSID* ppsidGroup,
84 PACL* ppDacl,
85 PACL* ppSacl,
86 PSECURITY_DESCRIPTOR* ppSecurityDescriptor);
87
88 /* 2F4 */
89 DWORD (WINAPI *RewriteSetNamedRights)(LPWSTR pObjectName,
90 SE_OBJECT_TYPE ObjectType,
91 SECURITY_INFORMATION SecurityInfo,
92 PSECURITY_DESCRIPTOR pSecurityDescriptor);
93
94 /*2F8*/
95 DWORD (WINAPI *RewriteGetHandleRights)(HANDLE handle,
96 SE_OBJECT_TYPE ObjectType,
97 SECURITY_INFORMATION SecurityInfo,
98 PSID* ppsidOwner,
99 PSID* ppsidGroup,
100 PACL* ppDacl,
101 PACL* ppSacl,
102 PSECURITY_DESCRIPTOR* ppSecurityDescriptor);
103
104 /* 2FC */
105 DWORD (WINAPI *RewriteSetHandleRights)(HANDLE handle,
106 SE_OBJECT_TYPE ObjectType,
107 SECURITY_INFORMATION SecurityInfo,
108 PSECURITY_DESCRIPTOR pSecurityDescriptor);
109
110 /* 300 */
111 DWORD (WINAPI *RewriteSetEntriesInAcl)(ULONG cCountOfExplicitEntries,
112 PEXPLICIT_ACCESS_W pListOfExplicitEntries,
113 PACL OldAcl,
114 PACL* NewAcl);
115
116 /* 304 */
117 DWORD (WINAPI *RewriteGetExplicitEntriesFromAcl)(PACL pacl,
118 PULONG pcCountOfExplicitEntries,
119 PEXPLICIT_ACCESS_W* pListOfExplicitEntries);
120
121 /* 308 */
122 DWORD (WINAPI *TreeResetNamedSecurityInfo)(LPWSTR pObjectName,
123 SE_OBJECT_TYPE ObjectType,
124 SECURITY_INFORMATION SecurityInfo,
125 PSID pOwner,
126 PSID pGroup,
127 PACL pDacl,
128 PACL pSacl,
129 BOOL KeepExplicit,
130 FN_PROGRESSW fnProgress,
131 PROG_INVOKE_SETTING ProgressInvokeSetting,
132 PVOID Args);
133 /* 30C */
134 DWORD (WINAPI *GetInheritanceSource)(LPWSTR pObjectName,
135 SE_OBJECT_TYPE ObjectType,
136 SECURITY_INFORMATION SecurityInfo,
137 BOOL Container,
138 GUID** pObjectClassGuids,
139 DWORD GuidCount,
140 PACL pAcl,
141 PFN_OBJECT_MGR_FUNCTS pfnArray,
142 PGENERIC_MAPPING pGenericMapping,
143 PINHERITED_FROMW pInheritArray);
144
145 /* 310 */
146 DWORD (WINAPI *FreeIndexArray)(PINHERITED_FROMW pInheritArray,
147 USHORT AceCnt,
148 PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL);
149 } NTMARTA, *PNTMARTA;
150
151 #define AccLookupAccountTrustee NtMartaStatic.LookupAccountTrustee
152 #define AccLookupAccountName NtMartaStatic.LookupAccountName
153 #define AccLookupAccountSid NtMartaStatic.LookupAccountSid
154 #define AccSetEntriesInAList NtMartaStatic.SetEntriesInAList
155 #define AccConvertAccessToSecurityDescriptor NtMartaStatic.ConvertAccessToSecurityDescriptor
156 #define AccConvertSDToAccess NtMartaStatic.ConvertSDToAccess
157 #define AccConvertAclToAccess NtMartaStatic.ConvertAclToAccess
158 #define AccGetAccessForTrustee NtMartaStatic.GetAccessForTrustee
159 #define AccGetExplicitEntries NtMartaStatic.GetExplicitEntries
160 #define AccRewriteGetNamedRights NtMartaStatic.RewriteGetNamedRights
161 #define AccRewriteSetNamedRights NtMartaStatic.RewriteSetNamedRights
162 #define AccRewriteGetHandleRights NtMartaStatic.RewriteGetHandleRights
163 #define AccRewriteSetHandleRights NtMartaStatic.RewriteSetHandleRights
164 #define AccRewriteSetEntriesInAcl NtMartaStatic.RewriteSetEntriesInAcl
165 #define AccRewriteGetExplicitEntriesFromAcl NtMartaStatic.RewriteGetExplicitEntriesFromAcl
166 #define AccTreeResetNamedSecurityInfo NtMartaStatic.TreeResetNamedSecurityInfo
167 #define AccGetInheritanceSource NtMartaStatic.GetInheritanceSource
168 #define AccFreeIndexArray NtMartaStatic.FreeIndexArray
169
170 extern NTMARTA NtMartaStatic;
171
172 DWORD CheckNtMartaPresent(VOID);
173
174 #endif /* __ADVAPI32_H */