ReactOS  0.4.12-dev-102-g4b7f1e0
security.h
Go to the documentation of this file.
1 #pragma once
2 
3 BOOL
5 
6 VOID
8 
9 #define REGEDIT_IMPLEMENT_ISECURITYINFORMATION2 0
10 
11 /******************************************************************************
12  ISecurityInformation
13  ******************************************************************************/
14 
15 typedef struct ISecurityInformation *LPSECURITYINFORMATION;
16 
17 typedef struct ifaceISecuritInformationVbtl ifaceISecurityInformationVbtl;
19 {
20  /* IUnknown */
21  HRESULT (STDMETHODCALLTYPE *QueryInterface)(struct ISecurityInformation *this,
23  PVOID *pvObject);
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,
33  BOOL fDefault);
34  HRESULT (STDMETHODCALLTYPE *SetSecurity)(struct ISecurityInformation *this,
37  HRESULT (STDMETHODCALLTYPE *GetAccessRights)(struct ISecurityInformation *this,
39  DWORD dwFlags,
43  HRESULT (STDMETHODCALLTYPE *MapGeneric)(struct ISecurityInformation *this,
47  HRESULT (STDMETHODCALLTYPE *GetInheritTypes)(struct ISecurityInformation *this,
50  HRESULT (STDMETHODCALLTYPE *PropertySheetPageCallback)(struct ISecurityInformation *this,
52  UINT uMsg,
54 };
55 
56 #if REGEDIT_IMPLEMENT_ISECURITYINFORMATION2
57 /******************************************************************************
58  ISecurityInformation2
59  ******************************************************************************/
60 
61 typedef struct ISecurityInformation2 *LPSECURITYINFORMATION2;
62 
63 typedef struct ifaceISecurityInformation2Vbtl ifaceISecurityInformation2Vbtl;
64 struct 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 
87 typedef struct IEffectivePermission *LPEFFECTIVEPERMISSION;
88 
91 {
92  /* IUnknown */
93  HRESULT (STDMETHODCALLTYPE *QueryInterface)(struct IEffectivePermission *this,
95  PVOID *pvObject);
96  ULONG (STDMETHODCALLTYPE *AddRef)(struct IEffectivePermission *this);
97  ULONG (STDMETHODCALLTYPE *Release)(struct IEffectivePermission *this);
98 
99  /* IEffectivePermission */
100  HRESULT (STDMETHODCALLTYPE *GetEffectivePermission)(struct IEffectivePermission *this,
102  PSID pUserSid,
103  LPCWSTR pszServerName,
105  POBJECT_TYPE_LIST* ppObjectTypeList,
106  ULONG* pcObjectTypeListLength,
107  PACCESS_MASK* ppGrantedAccessList,
108  ULONG* pcGrantedAccessListLength);
109 };
110 
111 /******************************************************************************
112  ISecurityObjectTypeInfo
113  ******************************************************************************/
114 
115 typedef struct ISecurityObjectTypeInfo *LPSECURITYOBJECTTYPEINFO;
116 
119 {
120  /* IUnknown */
121  HRESULT (STDMETHODCALLTYPE *QueryInterface)(struct ISecurityObjectTypeInfo *this,
123  PVOID *pvObject);
124  ULONG (STDMETHODCALLTYPE *AddRef)(struct ISecurityObjectTypeInfo *this);
125  ULONG (STDMETHODCALLTYPE *Release)(struct ISecurityObjectTypeInfo *this);
126 
127  /* ISecurityObjectTypeInfo */
128  HRESULT (STDMETHODCALLTYPE *GetInheritSource)(struct ISecurityObjectTypeInfo *this,
130  PACL pACL,
131  PINHERITED_FROM* ppInheritArray);
132 };
133 
134 /******************************************************************************
135  CRegKeySecurity
136  ******************************************************************************/
137 
138 typedef struct _CRegKeySecurity
139 {
140  /* IUnknown fields and interfaces */
142 #if REGEDIT_IMPLEMENT_ISECURITYINFORMATION2
143  const struct ifaceISecurityInformation2Vbtl *lpISecurityInformation2Vtbl;
144 #endif
148 
149  /* CRegKeySecurity fields */
153  WCHAR szRegKey[1];
155 
156 /* EOF */
SECURITY_INFORMATION PSECURITY_DESCRIPTOR * ppSecurityDescriptor
Definition: security.h:31
#define REFIID
Definition: guiddef.h:113
_In_ BOOLEAN Release
Definition: classpnp.h:929
__wchar_t WCHAR
Definition: xmlstorage.h:180
PSI_OBJECT_INFO pObjectInfo
Definition: security.h:29
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
enum _SI_PAGE_TYPE SI_PAGE_TYPE
NTSTATUS QueryInterface(IN PDEVICE_OBJECT DeviceObject, IN CONST GUID InterfaceType, IN LONG Size, IN LONG Version, OUT PVOID Interface)
Definition: fdo.c:532
SECURITY_INFORMATION si
Definition: security.h:129
PSI_INHERIT_TYPE ULONG * pcInheritTypes
Definition: security.h:48
struct _CRegKeySecurity CRegKeySecurity
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
const struct ifaceISecurityObjectTypeInfoVbtl * lpISecurityObjectTypeInfoVtbl
Definition: security.h:146
const struct ifaceISecurityInformationVbtl * lpISecurityInformationVtbl
Definition: security.h:141
const GUID DWORD PSI_ACCESS * ppAccess
Definition: security.h:38
const GUID DWORD PSI_ACCESS ULONG * pcAccesses
Definition: security.h:38
SECURITY_INFORMATION PSECURITY_DESCRIPTOR BOOL fDefault
Definition: security.h:31
const struct ifaceIEffectivePermissionVbtl * lpIEffectivePermissionVtbl
Definition: security.h:145
PSI_INHERIT_TYPE * ppInheritTypes
Definition: security.h:48
const GUID UCHAR ACCESS_MASK * pMask
Definition: security.h:44
const GUID * pguidObjectType
Definition: security.h:38
unsigned int BOOL
Definition: ntddk_ex.h:94
ULONG(STDMETHODCALLTYPE *AddRef)(struct ISecurityInformation *this)
unsigned int UINT
Definition: ndis.h:50
#define STDMETHODCALLTYPE
Definition: bdasup.h:9
unsigned long DWORD
Definition: ntddk_ex.h:95
struct _CRegKeySecurity * PCRegKeySecurity
REFIID PVOID * pvObject
Definition: security.h:94
unsigned char UCHAR
Definition: xmlstorage.h:181
const GUID DWORD PSI_ACCESS ULONG ULONG * piDefaultAccess
Definition: security.h:38
interface IDataObject * LPDATAOBJECT
Definition: objfwd.h:21
VOID UnloadAclUiDll(VOID)
Definition: security.c:830
REFIID PVOID * pvObject
Definition: security.h:22
struct IEffectivePermission * LPEFFECTIVEPERMISSION
Definition: security.h:87
const GUID DWORD dwFlags
Definition: security.h:38
BOOL InitializeAclUiDll(VOID)
Definition: security.c:811
SECURITY_INFORMATION RequestedInformation
Definition: security.h:31
HRESULT(STDMETHODCALLTYPE *QueryInterface)(struct ISecurityInformation *this
struct ISecurityObjectTypeInfo * LPSECURITYOBJECTTYPEINFO
Definition: security.h:115
HWND UINT SI_PAGE_TYPE uPage
Definition: security.h:51
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
SI_OBJECT_INFO ObjectInfo
Definition: security.h:150
unsigned int ULONG
Definition: retypes.h:1
ACCESS_MASK * PACCESS_MASK
Definition: nt_native.h:41
const GUID PSID pUserSid
Definition: security.h:101
SECURITY_INFORMATION PSECURITY_DESCRIPTOR pSecurityDescriptor
Definition: security.h:35
#define BOOL
Definition: msvc.h:23
ULONG ACCESS_MASK
Definition: nt_native.h:40
const GUID UCHAR * pAceFlags
Definition: security.h:44
struct ISecurityInformation * LPSECURITYINFORMATION
Definition: security.h:15