Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

116 lines
3.1 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1991 - 1998.
//
// File: wSecStor.hxx
//
// Contents: Implementation of the wrapper around Security Store
//
// Classes: CSecurityStoreWrapper
//
// History: 7-14-97 srikants Created
//
//----------------------------------------------------------------------------
#pragma once
#include <prcstob.hxx>
#include <rcstxact.hxx>
#include <cistore.hxx>
#include <secstore.hxx>
#include <fsciexps.hxx>
//+-------------------------------------------------------------------------
//
// Class: CSecurityStoreWrapper
//
// Purpose: Implementation of the PSecurityStorage wrapper class
// around Security Store.
//
// History: 7-14-97 srikants Created
// 01-Nov-98 KLam Added cMegToLeaveOnDisk to constructor
// Added _cMegToLeaveOnDisk private member
//
//--------------------------------------------------------------------------
class CSecurityStoreWrapper : public PSecurityStore
{
public:
CSecurityStoreWrapper( ICiCAdviseStatus *pAdviseStatus, ULONG cMegToLeaveOnDisk );
ULONG AddRef()
{
return InterlockedIncrement(&_lRefCount);
}
ULONG Release()
{
LONG lRef;
lRef = InterlockedDecrement(&_lRefCount);
if ( lRef <= 0 )
delete this;
return lRef;
}
virtual SCODE Init( WCHAR const * pwszDirectory );
virtual SCODE Load( WCHAR const * pwszDestinationDirectory, // dest dir
IEnumString * pFileList, // list of files to copy
IProgressNotify * pProgressNotify,
BOOL fCallerOwnsFiles,
BOOL * pfAbort );
virtual SCODE Save( WCHAR const * pwszSaveDir,
BOOL * pfAbort,
IEnumString ** ppFileList,
IProgressNotify * pProgress );
virtual SCODE Empty();
virtual SCODE LookupSDID( PSECURITY_DESCRIPTOR pSD, ULONG cbSD,
SDID & sdid );
virtual SCODE AccessCheck( SDID sdid,
HANDLE hToken,
ACCESS_MASK am,
BOOL & fGranted );
virtual SCODE GetSecurityDescriptor(
SDID sdid,
PSECURITY_DESCRIPTOR pSD,
ULONG cbSDIn,
ULONG & cbSDOut );
virtual SCODE Shutdown()
{
_secStore.Shutdown();
return S_OK;
}
private:
virtual ~CSecurityStoreWrapper ();
long _lRefCount;
ULONG _cMegToLeaveOnDisk; // megabytes to leave on disk
//
// Security store needs a CiStorage object owned by the creating
// object. _pStorage must live as long as the
//
XPtr<CiStorage> _xStorage;
CSdidLookupTable _secStore;
XInterface<ICiCAdviseStatus> _xAdviseStatus;
};