ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

security.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.