Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygensecurity.h
Go to the documentation of this file.
00001 #pragma once 00002 00003 BOOL 00004 InitializeAclUiDll(VOID); 00005 00006 VOID 00007 UnloadAclUiDll(VOID); 00008 00009 #define REGEDIT_IMPLEMENT_ISECURITYINFORMATION2 0 00010 00011 /****************************************************************************** 00012 ISecurityInformation 00013 ******************************************************************************/ 00014 00015 typedef struct ISecurityInformation *LPSECURITYINFORMATION; 00016 00017 typedef struct ifaceISecuritInformationVbtl ifaceISecurityInformationVbtl; 00018 struct ifaceISecurityInformationVbtl 00019 { 00020 /* IUnknown */ 00021 HRESULT (STDMETHODCALLTYPE *QueryInterface)(struct ISecurityInformation *this, 00022 REFIID iid, 00023 PVOID *pvObject); 00024 ULONG (STDMETHODCALLTYPE *AddRef)(struct ISecurityInformation *this); 00025 ULONG (STDMETHODCALLTYPE *Release)(struct ISecurityInformation *this); 00026 00027 /* ISecurityInformation */ 00028 HRESULT (STDMETHODCALLTYPE *GetObjectInformation)(struct ISecurityInformation *this, 00029 PSI_OBJECT_INFO pObjectInfo); 00030 HRESULT (STDMETHODCALLTYPE *GetSecurity)(struct ISecurityInformation *this, 00031 SECURITY_INFORMATION RequestedInformation, 00032 PSECURITY_DESCRIPTOR* ppSecurityDescriptor, 00033 BOOL fDefault); 00034 HRESULT (STDMETHODCALLTYPE *SetSecurity)(struct ISecurityInformation *this, 00035 SECURITY_INFORMATION RequestedInformation, 00036 PSECURITY_DESCRIPTOR pSecurityDescriptor); 00037 HRESULT (STDMETHODCALLTYPE *GetAccessRights)(struct ISecurityInformation *this, 00038 const GUID* pguidObjectType, 00039 DWORD dwFlags, 00040 PSI_ACCESS* ppAccess, 00041 ULONG* pcAccesses, 00042 ULONG* piDefaultAccess); 00043 HRESULT (STDMETHODCALLTYPE *MapGeneric)(struct ISecurityInformation *this, 00044 const GUID* pguidObjectType, 00045 UCHAR* pAceFlags, 00046 ACCESS_MASK* pMask); 00047 HRESULT (STDMETHODCALLTYPE *GetInheritTypes)(struct ISecurityInformation *this, 00048 PSI_INHERIT_TYPE* ppInheritTypes, 00049 ULONG* pcInheritTypes); 00050 HRESULT (STDMETHODCALLTYPE *PropertySheetPageCallback)(struct ISecurityInformation *this, 00051 HWND hwnd, 00052 UINT uMsg, 00053 SI_PAGE_TYPE uPage); 00054 }; 00055 00056 #if REGEDIT_IMPLEMENT_ISECURITYINFORMATION2 00057 /****************************************************************************** 00058 ISecurityInformation2 00059 ******************************************************************************/ 00060 00061 typedef struct ISecurityInformation2 *LPSECURITYINFORMATION2; 00062 00063 typedef struct ifaceISecurityInformation2Vbtl ifaceISecurityInformation2Vbtl; 00064 struct ifaceISecurityInformation2Vbtl 00065 { 00066 /* IUnknown */ 00067 HRESULT (STDMETHODCALLTYPE *QueryInterface)(struct ISecurityInformation2 *this, 00068 REFIID iid, 00069 PVOID *pvObject); 00070 ULONG (STDMETHODCALLTYPE *AddRef)(struct ISecurityInformation2 *this); 00071 ULONG (STDMETHODCALLTYPE *Release)(struct ISecurityInformation2 *this); 00072 00073 /* ISecurityInformation2 */ 00074 BOOL (STDMETHODCALLTYPE *IsDaclCanonical)(struct ISecurityInformation2 *this, 00075 PACL pDacl); 00076 HRESULT (STDMETHODCALLTYPE *LookupSids)(struct ISecurityInformation2 *this, 00077 ULONG cSids, 00078 PSID* rgpSids, 00079 LPDATAOBJECT* ppdo); 00080 }; 00081 #endif 00082 00083 /****************************************************************************** 00084 IEffectivePermission 00085 ******************************************************************************/ 00086 00087 typedef struct IEffectivePermission *LPEFFECTIVEPERMISSION; 00088 00089 typedef struct ifaceIEffectivePermissionVbtl ifaceIEffectivePermissionVbtl; 00090 struct ifaceIEffectivePermissionVbtl 00091 { 00092 /* IUnknown */ 00093 HRESULT (STDMETHODCALLTYPE *QueryInterface)(struct IEffectivePermission *this, 00094 REFIID iid, 00095 PVOID *pvObject); 00096 ULONG (STDMETHODCALLTYPE *AddRef)(struct IEffectivePermission *this); 00097 ULONG (STDMETHODCALLTYPE *Release)(struct IEffectivePermission *this); 00098 00099 /* IEffectivePermission */ 00100 HRESULT (STDMETHODCALLTYPE *GetEffectivePermission)(struct IEffectivePermission *this, 00101 const GUID* pguidObjectType, 00102 PSID pUserSid, 00103 LPCWSTR pszServerName, 00104 PSECURITY_DESCRIPTOR pSD, 00105 POBJECT_TYPE_LIST* ppObjectTypeList, 00106 ULONG* pcObjectTypeListLength, 00107 PACCESS_MASK* ppGrantedAccessList, 00108 ULONG* pcGrantedAccessListLength); 00109 }; 00110 00111 /****************************************************************************** 00112 ISecurityObjectTypeInfo 00113 ******************************************************************************/ 00114 00115 typedef struct ISecurityObjectTypeInfo *LPSECURITYOBJECTTYPEINFO; 00116 00117 typedef struct ifaceISecurityObjectTypeInfoVbtl ifaceISecurityObjectTypeInfoVbtl; 00118 struct ifaceISecurityObjectTypeInfoVbtl 00119 { 00120 /* IUnknown */ 00121 HRESULT (STDMETHODCALLTYPE *QueryInterface)(struct ISecurityObjectTypeInfo *this, 00122 REFIID iid, 00123 PVOID *pvObject); 00124 ULONG (STDMETHODCALLTYPE *AddRef)(struct ISecurityObjectTypeInfo *this); 00125 ULONG (STDMETHODCALLTYPE *Release)(struct ISecurityObjectTypeInfo *this); 00126 00127 /* ISecurityObjectTypeInfo */ 00128 HRESULT (STDMETHODCALLTYPE *GetInheritSource)(struct ISecurityObjectTypeInfo *this, 00129 SECURITY_INFORMATION si, 00130 PACL pACL, 00131 PINHERITED_FROM* ppInheritArray); 00132 }; 00133 00134 /****************************************************************************** 00135 CRegKeySecurity 00136 ******************************************************************************/ 00137 00138 typedef struct _CRegKeySecurity 00139 { 00140 /* IUnknown fields and interfaces */ 00141 const struct ifaceISecurityInformationVbtl *lpISecurityInformationVtbl; 00142 #if REGEDIT_IMPLEMENT_ISECURITYINFORMATION2 00143 const struct ifaceISecurityInformation2Vbtl *lpISecurityInformation2Vtbl; 00144 #endif 00145 const struct ifaceIEffectivePermissionVbtl *lpIEffectivePermissionVtbl; 00146 const struct ifaceISecurityObjectTypeInfoVbtl *lpISecurityObjectTypeInfoVtbl; 00147 DWORD ref; 00148 00149 /* CRegKeySecurity fields */ 00150 SI_OBJECT_INFO ObjectInfo; 00151 BOOL *Btn; 00152 HKEY hRootKey; 00153 TCHAR szRegKey[1]; 00154 } CRegKeySecurity, *PCRegKeySecurity; 00155 00156 /* EOF */ Generated on Sat May 26 2012 04:16:24 for ReactOS by
1.7.6.1
|