ReactOS 0.4.16-dev-311-g9382aa2
security.h
Go to the documentation of this file.
1#pragma once
2
5
8
9#define REGEDIT_IMPLEMENT_ISECURITYINFORMATION2 0
10
11/******************************************************************************
12 ISecurityInformation
13 ******************************************************************************/
14
15typedef struct ISecurityInformation *LPSECURITYINFORMATION;
16
17typedef struct ifaceISecuritInformationVbtl ifaceISecurityInformationVbtl;
19{
20 /* IUnknown */
21 HRESULT (STDMETHODCALLTYPE *QueryInterface)(struct ISecurityInformation *this,
24 ULONG (STDMETHODCALLTYPE *AddRef)(struct ISecurityInformation *this);
25 ULONG (STDMETHODCALLTYPE *Release)(struct ISecurityInformation *this);
26
27 /* ISecurityInformation */
28 HRESULT (STDMETHODCALLTYPE *GetObjectInformation)(struct ISecurityInformation *this,
30 HRESULT (STDMETHODCALLTYPE *GetSecurity)(struct ISecurityInformation *this,
34 HRESULT (STDMETHODCALLTYPE *SetSecurity)(struct ISecurityInformation *this,
37 HRESULT (STDMETHODCALLTYPE *GetAccessRights)(struct ISecurityInformation *this,
43 HRESULT (STDMETHODCALLTYPE *MapGeneric)(struct ISecurityInformation *this,
44 const GUID* pguidObjectType,
47 HRESULT (STDMETHODCALLTYPE *GetInheritTypes)(struct ISecurityInformation *this,
50 HRESULT (STDMETHODCALLTYPE *PropertySheetPageCallback)(struct ISecurityInformation *this,
54};
55
56#if REGEDIT_IMPLEMENT_ISECURITYINFORMATION2
57/******************************************************************************
58 ISecurityInformation2
59 ******************************************************************************/
60
61typedef struct ISecurityInformation2 *LPSECURITYINFORMATION2;
62
63typedef struct ifaceISecurityInformation2Vbtl ifaceISecurityInformation2Vbtl;
64struct ifaceISecurityInformation2Vbtl
65{
66 /* IUnknown */
67 HRESULT (STDMETHODCALLTYPE *QueryInterface)(struct ISecurityInformation2 *this,
68 REFIID iid,
69 PVOID *pvObject);
70 ULONG (STDMETHODCALLTYPE *AddRef)(struct ISecurityInformation2 *this);
71 ULONG (STDMETHODCALLTYPE *Release)(struct ISecurityInformation2 *this);
72
73 /* ISecurityInformation2 */
74 BOOL (STDMETHODCALLTYPE *IsDaclCanonical)(struct ISecurityInformation2 *this,
75 PACL pDacl);
76 HRESULT (STDMETHODCALLTYPE *LookupSids)(struct ISecurityInformation2 *this,
77 ULONG cSids,
78 PSID* rgpSids,
79 LPDATAOBJECT* ppdo);
80};
81#endif
82
83/******************************************************************************
84 IEffectivePermission
85 ******************************************************************************/
86
87typedef struct IEffectivePermission *LPEFFECTIVEPERMISSION;
88
91{
92 /* IUnknown */
93 HRESULT (STDMETHODCALLTYPE *QueryInterface)(struct IEffectivePermission *this,
96 ULONG (STDMETHODCALLTYPE *AddRef)(struct IEffectivePermission *this);
97 ULONG (STDMETHODCALLTYPE *Release)(struct IEffectivePermission *this);
98
99 /* IEffectivePermission */
100 HRESULT (STDMETHODCALLTYPE *GetEffectivePermission)(struct IEffectivePermission *this,
109};
110
111/******************************************************************************
112 ISecurityObjectTypeInfo
113 ******************************************************************************/
114
115typedef struct ISecurityObjectTypeInfo *LPSECURITYOBJECTTYPEINFO;
116
119{
120 /* IUnknown */
121 HRESULT (STDMETHODCALLTYPE *QueryInterface)(struct ISecurityObjectTypeInfo *this,
124 ULONG (STDMETHODCALLTYPE *AddRef)(struct ISecurityObjectTypeInfo *this);
125 ULONG (STDMETHODCALLTYPE *Release)(struct ISecurityObjectTypeInfo *this);
126
127 /* ISecurityObjectTypeInfo */
128 HRESULT (STDMETHODCALLTYPE *GetInheritSource)(struct ISecurityObjectTypeInfo *this,
131 PINHERITED_FROM* ppInheritArray);
132};
133
134/******************************************************************************
135 CRegKeySecurity
136 ******************************************************************************/
137
138typedef struct _CRegKeySecurity
139{
140 /* IUnknown fields and interfaces */
142#if REGEDIT_IMPLEMENT_ISECURITYINFORMATION2
143 const struct ifaceISecurityInformation2Vbtl *lpISecurityInformation2Vtbl;
144#endif
148
149 /* CRegKeySecurity fields */
155
156/* EOF */
enum _SI_PAGE_TYPE SI_PAGE_TYPE
struct _CRegKeySecurity CRegKeySecurity
BOOL InitializeAclUiDll(VOID)
Definition: security.c:765
struct _CRegKeySecurity * PCRegKeySecurity
VOID UnloadAclUiDll(VOID)
Definition: security.c:784
struct IEffectivePermission * LPEFFECTIVEPERMISSION
Definition: security.h:87
struct ISecurityInformation * LPSECURITYINFORMATION
Definition: security.h:15
struct ISecurityObjectTypeInfo * LPSECURITYOBJECTTYPEINFO
Definition: security.h:115
#define STDMETHODCALLTYPE
Definition: bdasup.h:9
_In_ BOOLEAN Release
Definition: cdrom.h:920
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
unsigned int UINT
Definition: ndis.h:50
#define BOOL
Definition: nt_native.h:43
ULONG ACCESS_MASK
Definition: nt_native.h:40
ACCESS_MASK * PACCESS_MASK
Definition: nt_native.h:41
interface IDataObject * LPDATAOBJECT
Definition: objfwd.h:21
#define REFIID
Definition: guiddef.h:118
SI_OBJECT_INFO ObjectInfo
Definition: security.h:150
const struct ifaceIEffectivePermissionVbtl * lpIEffectivePermissionVtbl
Definition: security.h:145
const struct ifaceISecurityInformationVbtl * lpISecurityInformationVtbl
Definition: security.h:141
WCHAR szRegKey[1]
Definition: security.h:153
const struct ifaceISecurityObjectTypeInfoVbtl * lpISecurityObjectTypeInfoVtbl
Definition: security.h:146
const GUID PSID LPCWSTR PSECURITY_DESCRIPTOR POBJECT_TYPE_LIST ULONG PACCESS_MASK ULONG * pcGrantedAccessListLength
Definition: security.h:108
const GUID PSID LPCWSTR PSECURITY_DESCRIPTOR POBJECT_TYPE_LIST ULONG PACCESS_MASK * ppGrantedAccessList
Definition: security.h:107
REFIID PVOID * pvObject
Definition: security.h:95
const GUID PSID pUserSid
Definition: security.h:102
ULONG(STDMETHODCALLTYPE *Release)(struct IEffectivePermission *this)
const GUID PSID LPCWSTR pszServerName
Definition: security.h:103
const GUID PSID LPCWSTR PSECURITY_DESCRIPTOR POBJECT_TYPE_LIST ULONG * pcObjectTypeListLength
Definition: security.h:106
const GUID PSID LPCWSTR PSECURITY_DESCRIPTOR POBJECT_TYPE_LIST * ppObjectTypeList
Definition: security.h:105
const GUID PSID LPCWSTR PSECURITY_DESCRIPTOR pSD
Definition: security.h:104
HRESULT(STDMETHODCALLTYPE *QueryInterface)(struct IEffectivePermission *this
const GUID * pguidObjectType
Definition: security.h:101
ULONG(STDMETHODCALLTYPE *AddRef)(struct IEffectivePermission *this)
HRESULT(STDMETHODCALLTYPE *GetEffectivePermission)(struct IEffectivePermission *this
SECURITY_INFORMATION PSECURITY_DESCRIPTOR BOOL fDefault
Definition: security.h:33
ULONG(STDMETHODCALLTYPE *AddRef)(struct ISecurityInformation *this)
HRESULT(STDMETHODCALLTYPE *MapGeneric)(struct ISecurityInformation *this
PSI_INHERIT_TYPE * ppInheritTypes
Definition: security.h:48
const GUID DWORD PSI_ACCESS ULONG ULONG * piDefaultAccess
Definition: security.h:42
SECURITY_INFORMATION RequestedInformation
Definition: security.h:31
SECURITY_INFORMATION PSECURITY_DESCRIPTOR * ppSecurityDescriptor
Definition: security.h:32
REFIID PVOID * pvObject
Definition: security.h:23
HRESULT(STDMETHODCALLTYPE *GetSecurity)(struct ISecurityInformation *this
HRESULT(STDMETHODCALLTYPE *SetSecurity)(struct ISecurityInformation *this
SECURITY_INFORMATION PSECURITY_DESCRIPTOR pSecurityDescriptor
Definition: security.h:36
const GUID DWORD PSI_ACCESS * ppAccess
Definition: security.h:40
HRESULT(STDMETHODCALLTYPE *PropertySheetPageCallback)(struct ISecurityInformation *this
ULONG(STDMETHODCALLTYPE *Release)(struct ISecurityInformation *this)
const GUID DWORD PSI_ACCESS ULONG * pcAccesses
Definition: security.h:41
HRESULT(STDMETHODCALLTYPE *GetObjectInformation)(struct ISecurityInformation *this
const GUID UCHAR * pAceFlags
Definition: security.h:45
HWND UINT SI_PAGE_TYPE uPage
Definition: security.h:53
HRESULT(STDMETHODCALLTYPE *GetAccessRights)(struct ISecurityInformation *this
const GUID DWORD dwFlags
Definition: security.h:39
PSI_INHERIT_TYPE ULONG * pcInheritTypes
Definition: security.h:49
HRESULT(STDMETHODCALLTYPE *GetInheritTypes)(struct ISecurityInformation *this
PSI_OBJECT_INFO pObjectInfo
Definition: security.h:29
HRESULT(STDMETHODCALLTYPE *QueryInterface)(struct ISecurityInformation *this
const GUID UCHAR ACCESS_MASK * pMask
Definition: security.h:46
const GUID * pguidObjectType
Definition: security.h:38
HRESULT(STDMETHODCALLTYPE *QueryInterface)(struct ISecurityObjectTypeInfo *this
ULONG(STDMETHODCALLTYPE *AddRef)(struct ISecurityObjectTypeInfo *this)
SECURITY_INFORMATION si
Definition: security.h:129
ULONG(STDMETHODCALLTYPE *Release)(struct ISecurityObjectTypeInfo *this)
SECURITY_INFORMATION PACL PINHERITED_FROM * ppInheritArray
Definition: security.h:131
SECURITY_INFORMATION PACL pACL
Definition: security.h:130
HRESULT(STDMETHODCALLTYPE *GetInheritSource)(struct ISecurityObjectTypeInfo *this
uint32_t ULONG
Definition: typedefs.h:59
#define HRESULT
Definition: msvc.h:7
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185