ReactOS 0.4.17-dev-243-g1369312
advapi32.h
Go to the documentation of this file.
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
27#define NTOS_MODE_USER
28#include <ndk/iofuncs.h>
29#include <ndk/obfuncs.h>
30#include <ndk/psfuncs.h>
31#include <ndk/rtlfuncs.h>
32#include <ndk/sefuncs.h>
33#include <ndk/setypes.h>
34
35/* this has to go after the NDK when being used with the NDK */
36#include <ntsecapi.h>
37
38#include <services/services.h>
39#include <seclogon_c.h>
40#include <svcctl_c.h>
41#include <winreg_c.h>
42#include <dbt.h>
43// #include <winsvc_undoc.h>
44
45#include <wine/debug.h>
46#include <wine/unicode.h>
47#include <wine/exception.h>
48
49#include "wine/crypt.h"
50
51#ifndef HAS_FN_PROGRESSW
52#define FN_PROGRESSW FN_PROGRESS
53#endif
54#ifndef HAS_FN_PROGRESSA
55#define FN_PROGRESSA FN_PROGRESS
56#endif
57
58/* logon.c */
59
62
63/* rpc.c */
64
68
69BOOL
72
73/* scm.c */
76
77/* Interface to ntmarta.dll **************************************************/
78
79typedef struct _NTMARTA
80{
82
92 /* 2F0 */
93 DWORD (WINAPI *RewriteGetNamedRights)(LPWSTR pObjectName,
101
102 /* 2F4 */
103 DWORD (WINAPI *RewriteSetNamedRights)(LPWSTR pObjectName,
107
108 /*2F8*/
109 DWORD (WINAPI *RewriteGetHandleRights)(HANDLE handle,
114 PACL* ppDacl,
115 PACL* ppSacl,
117
118 /* 2FC */
119 DWORD (WINAPI *RewriteSetHandleRights)(HANDLE handle,
123
124 /* 300 */
125 DWORD (WINAPI *RewriteSetEntriesInAcl)(ULONG cCountOfExplicitEntries,
129
130 /* 304 */
131 DWORD (WINAPI *RewriteGetExplicitEntriesFromAcl)(PACL pacl,
134
135 /* 308 */
136 DWORD (WINAPI *TreeResetNamedSecurityInfo)(LPWSTR pObjectName,
147 /* 30C */
157 PINHERITED_FROMW pInheritArray);
158
159 /* 310 */
160 DWORD (WINAPI *FreeIndexArray)(PINHERITED_FROMW pInheritArray,
164
165#define AccLookupAccountTrustee NtMartaStatic.LookupAccountTrustee
166#define AccLookupAccountName NtMartaStatic.LookupAccountName
167#define AccLookupAccountSid NtMartaStatic.LookupAccountSid
168#define AccSetEntriesInAList NtMartaStatic.SetEntriesInAList
169#define AccConvertAccessToSecurityDescriptor NtMartaStatic.ConvertAccessToSecurityDescriptor
170#define AccConvertSDToAccess NtMartaStatic.ConvertSDToAccess
171#define AccConvertAclToAccess NtMartaStatic.ConvertAclToAccess
172#define AccGetAccessForTrustee NtMartaStatic.GetAccessForTrustee
173#define AccGetExplicitEntries NtMartaStatic.GetExplicitEntries
174#define AccRewriteGetNamedRights NtMartaStatic.RewriteGetNamedRights
175#define AccRewriteSetNamedRights NtMartaStatic.RewriteSetNamedRights
176#define AccRewriteGetHandleRights NtMartaStatic.RewriteGetHandleRights
177#define AccRewriteSetHandleRights NtMartaStatic.RewriteSetHandleRights
178#define AccRewriteSetEntriesInAcl NtMartaStatic.RewriteSetEntriesInAcl
179#define AccRewriteGetExplicitEntriesFromAcl NtMartaStatic.RewriteGetExplicitEntriesFromAcl
180#define AccTreeResetNamedSecurityInfo NtMartaStatic.TreeResetNamedSecurityInfo
181#define AccGetInheritanceSource NtMartaStatic.GetInheritanceSource
182#define AccFreeIndexArray NtMartaStatic.FreeIndexArray
183
185
187
188/* heap allocation helpers */
189static void *heap_alloc( size_t len ) __WINE_ALLOC_SIZE(1);
190static inline void *heap_alloc( size_t len )
191{
192 return HeapAlloc( GetProcessHeap(), 0, len );
193}
194
195static inline BOOL heap_free( void *mem )
196{
197 return HeapFree( GetProcessHeap(), 0, mem );
198}
199
200#endif /* __ADVAPI32_H */
enum _PROG_INVOKE_SETTING PROG_INVOKE_SETTING
enum _SE_OBJECT_TYPE SE_OBJECT_TYPE
#define GetInheritanceSource
Definition: aclapi.h:234
DWORD ScmRpcStatusToWinError(RPC_STATUS Status)
Definition: scm.c:146
RPC_STATUS EvtUnbindLocalHandle(void)
RPC_STATUS EvtBindRpc(LPCWSTR pszMachine, RPC_BINDING_HANDLE *BindingHandle)
BOOL EvtGetLocalHandle(RPC_BINDING_HANDLE *BindingHandle)
static void * heap_alloc(size_t len) __WINE_ALLOC_SIZE(1)
Definition: advapi32.h:190
DWORD CheckNtMartaPresent(VOID)
Definition: misc.c:74
static BOOL heap_free(void *mem)
Definition: advapi32.h:195
#define FN_PROGRESSW
Definition: advapi32.h:52
NTMARTA NtMartaStatic
Definition: misc.c:19
struct _NTMARTA * PNTMARTA
struct _NTMARTA NTMARTA
NTSTATUS CloseLogonLsaHandle(VOID)
Definition: logon.c:75
RPC_STATUS EvtUnbindRpc(RPC_BINDING_HANDLE *BindingHandle)
LONG NTSTATUS
Definition: precomp.h:26
PWSTR pszMachine
Definition: context.c:32
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
#define __WINE_ALLOC_SIZE(...)
Definition: corecrt.h:328
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
Status
Definition: gdiplustypes.h:24
GLenum GLsizei len
Definition: glext.h:6722
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
unsigned short USHORT
Definition: pedump.c:61
long RPC_STATUS
Definition: rpc.h:48
SE_OBJECT_TYPE SECURITY_INFORMATION BOOL GUID DWORD PACL PFN_OBJECT_MGR_FUNCTS pfnArray
Definition: advapi32.h:155
SE_OBJECT_TYPE SECURITY_INFORMATION BOOL Container
Definition: advapi32.h:151
PVOID LookupAccountTrustee
Definition: advapi32.h:83
PULONG pcCountOfExplicitEntries
Definition: advapi32.h:132
DWORD(WINAPI *FreeIndexArray)(PINHERITED_FROMW pInheritArray
SE_OBJECT_TYPE SECURITY_INFORMATION BOOL GUID DWORD GuidCount
Definition: advapi32.h:153
PVOID ConvertSDToAccess
Definition: advapi32.h:88
SE_OBJECT_TYPE SECURITY_INFORMATION PSID * ppsidOwner
Definition: advapi32.h:96
PEXPLICIT_ACCESS_W PACL OldAcl
Definition: advapi32.h:127
SE_OBJECT_TYPE SECURITY_INFORMATION PSID PSID PACL PACL pSacl
Definition: advapi32.h:142
SE_OBJECT_TYPE SECURITY_INFORMATION PSID PSID PACL PACL BOOL FN_PROGRESSW fnProgress
Definition: advapi32.h:144
DWORD(WINAPI *TreeResetNamedSecurityInfo)(LPWSTR pObjectName
DWORD(WINAPI *RewriteSetNamedRights)(LPWSTR pObjectName
SE_OBJECT_TYPE SECURITY_INFORMATION PSID PSID PACL PACL BOOL FN_PROGRESSW PROG_INVOKE_SETTING PVOID Args
Definition: advapi32.h:146
SE_OBJECT_TYPE ObjectType
Definition: advapi32.h:94
HINSTANCE hDllInstance
Definition: advapi32.h:81
SE_OBJECT_TYPE SECURITY_INFORMATION PSID PSID PACL PACL * ppSacl
Definition: advapi32.h:99
SE_OBJECT_TYPE SECURITY_INFORMATION BOOL GUID DWORD PACL PFN_OBJECT_MGR_FUNCTS PGENERIC_MAPPING pGenericMapping
Definition: advapi32.h:156
SE_OBJECT_TYPE SECURITY_INFORMATION PSID PSID PACL pDacl
Definition: advapi32.h:141
DWORD(WINAPI *RewriteGetNamedRights)(LPWSTR pObjectName
PVOID GetAccessForTrustee
Definition: advapi32.h:90
SE_OBJECT_TYPE SECURITY_INFORMATION PSID PSID PACL PACL BOOL KeepExplicit
Definition: advapi32.h:143
PVOID SetEntriesInAList
Definition: advapi32.h:86
PEXPLICIT_ACCESS_W pListOfExplicitEntries
Definition: advapi32.h:126
SE_OBJECT_TYPE SECURITY_INFORMATION BOOL GUID DWORD PACL pAcl
Definition: advapi32.h:154
SE_OBJECT_TYPE SECURITY_INFORMATION BOOL GUID ** pObjectClassGuids
Definition: advapi32.h:152
PEXPLICIT_ACCESS_W PACL PACL * NewAcl
Definition: advapi32.h:128
USHORT AceCnt
Definition: advapi32.h:161
SE_OBJECT_TYPE SECURITY_INFORMATION PSID PSID * ppsidGroup
Definition: advapi32.h:97
SE_OBJECT_TYPE SECURITY_INFORMATION BOOL GUID DWORD PACL PFN_OBJECT_MGR_FUNCTS PGENERIC_MAPPING PINHERITED_FROMW pInheritArray
Definition: advapi32.h:157
PVOID LookupAccountSid
Definition: advapi32.h:85
PVOID GetExplicitEntries
Definition: advapi32.h:91
SE_OBJECT_TYPE SECURITY_INFORMATION PSID PSID PACL PACL BOOL FN_PROGRESSW PROG_INVOKE_SETTING ProgressInvokeSetting
Definition: advapi32.h:145
DWORD(WINAPI *RewriteSetEntriesInAcl)(ULONG cCountOfExplicitEntries
SE_OBJECT_TYPE SECURITY_INFORMATION PSECURITY_DESCRIPTOR pSecurityDescriptor
Definition: advapi32.h:106
DWORD(WINAPI *GetInheritanceSource)(LPWSTR pObjectName
SE_OBJECT_TYPE SECURITY_INFORMATION SecurityInfo
Definition: advapi32.h:95
SE_OBJECT_TYPE SECURITY_INFORMATION PSID PSID PACL * ppDacl
Definition: advapi32.h:98
SE_OBJECT_TYPE SECURITY_INFORMATION PSID PSID pGroup
Definition: advapi32.h:140
PVOID LookupAccountName
Definition: advapi32.h:84
DWORD(WINAPI *RewriteSetHandleRights)(HANDLE handle
SE_OBJECT_TYPE SECURITY_INFORMATION PSID PSID PACL PACL PSECURITY_DESCRIPTOR * ppSecurityDescriptor
Definition: advapi32.h:100
DWORD(WINAPI *RewriteGetExplicitEntriesFromAcl)(PACL pacl
PVOID ConvertAccessToSecurityDescriptor
Definition: advapi32.h:87
PULONG PEXPLICIT_ACCESS_W * pListOfExplicitEntries
Definition: advapi32.h:133
PVOID ConvertAclToAccess
Definition: advapi32.h:89
USHORT PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL
Definition: advapi32.h:162
SE_OBJECT_TYPE SECURITY_INFORMATION PSID pOwner
Definition: advapi32.h:139
DWORD(WINAPI *RewriteGetHandleRights)(HANDLE handle
Definition: mem.c:349
_In_ ULONG _Out_ HANDLE * BindingHandle
Definition: tdikrnl.h:1147
uint32_t * PULONG
Definition: typedefs.h:59
const uint16_t * LPCWSTR
Definition: typedefs.h:57
uint16_t * LPWSTR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
#define WINAPI
Definition: msvc.h:6