reshuffling of dlls
[reactos.git] / reactos / 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 <stdio.h>
15
16 /* PSDK/NDK Headers */
17 #define WIN32_NO_STATUS
18 #include <windows.h>
19 #include <accctrl.h>
20 #include <sddl.h>
21 #define NTOS_MODE_USER
22 #include <ndk/ntndk.h>
23
24 /* this has to go after the NDK when being used with the NDK */
25 #include <ntsecapi.h>
26
27 #include <services/services.h>
28 #include "svcctl_c.h"
29 #include "lsa_c.h"
30
31 #ifndef HAS_FN_PROGRESSW
32 #define FN_PROGRESSW FN_PROGRESS
33 #endif
34 #ifndef HAS_FN_PROGRESSA
35 #define FN_PROGRESSA FN_PROGRESS
36 #endif
37
38 /* Interface to ntmarta.dll **************************************************/
39
40 typedef struct _NTMARTA
41 {
42 HINSTANCE hDllInstance;
43
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;
53 /* 2F0 */
54 DWORD (STDCALL *RewriteGetNamedRights)(LPWSTR pObjectName,
55 SE_OBJECT_TYPE ObjectType,
56 SECURITY_INFORMATION SecurityInfo,
57 PSID* ppsidOwner,
58 PSID* ppsidGroup,
59 PACL* ppDacl,
60 PACL* ppSacl,
61 PSECURITY_DESCRIPTOR* ppSecurityDescriptor);
62
63 /* 2F4 */
64 DWORD (STDCALL *RewriteSetNamedRights)(LPWSTR pObjectName,
65 SE_OBJECT_TYPE ObjectType,
66 SECURITY_INFORMATION SecurityInfo,
67 PSECURITY_DESCRIPTOR pSecurityDescriptor);
68
69 /*2F8*/
70 DWORD (STDCALL *RewriteGetHandleRights)(HANDLE handle,
71 SE_OBJECT_TYPE ObjectType,
72 SECURITY_INFORMATION SecurityInfo,
73 PSID* ppsidOwner,
74 PSID* ppsidGroup,
75 PACL* ppDacl,
76 PACL* ppSacl,
77 PSECURITY_DESCRIPTOR* ppSecurityDescriptor);
78
79 /* 2FC */
80 DWORD (STDCALL *RewriteSetHandleRights)(HANDLE handle,
81 SE_OBJECT_TYPE ObjectType,
82 SECURITY_INFORMATION SecurityInfo,
83 PSECURITY_DESCRIPTOR pSecurityDescriptor);
84
85 /* 300 */
86 DWORD (STDCALL *RewriteSetEntriesInAcl)(ULONG cCountOfExplicitEntries,
87 PEXPLICIT_ACCESS_W pListOfExplicitEntries,
88 PACL OldAcl,
89 PACL* NewAcl);
90
91 /* 304 */
92 DWORD (STDCALL *RewriteGetExplicitEntriesFromAcl)(PACL pacl,
93 PULONG pcCountOfExplicitEntries,
94 PEXPLICIT_ACCESS_W* pListOfExplicitEntries);
95
96 /* 308 */
97 DWORD (STDCALL *TreeResetNamedSecurityInfo)(LPWSTR pObjectName,
98 SE_OBJECT_TYPE ObjectType,
99 SECURITY_INFORMATION SecurityInfo,
100 PSID pOwner,
101 PSID pGroup,
102 PACL pDacl,
103 PACL pSacl,
104 BOOL KeepExplicit,
105 FN_PROGRESSW fnProgress,
106 PROG_INVOKE_SETTING ProgressInvokeSetting,
107 PVOID Args);
108 /* 30C */
109 DWORD (STDCALL *GetInheritanceSource)(LPWSTR pObjectName,
110 SE_OBJECT_TYPE ObjectType,
111 SECURITY_INFORMATION SecurityInfo,
112 BOOL Container,
113 GUID** pObjectClassGuids,
114 DWORD GuidCount,
115 PACL pAcl,
116 PFN_OBJECT_MGR_FUNCTS pfnArray,
117 PGENERIC_MAPPING pGenericMapping,
118 PINHERITED_FROMW pInheritArray);
119
120 /* 310 */
121 DWORD (STDCALL *FreeIndexArray)(PINHERITED_FROMW pInheritArray,
122 USHORT AceCnt,
123 PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL);
124 } NTMARTA, *PNTMARTA;
125
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
144
145 extern NTMARTA NtMartaStatic;
146
147 DWORD CheckNtMartaPresent(VOID);
148
149 #endif /* __ADVAPI32_H */