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.
341 lines
9.6 KiB
341 lines
9.6 KiB
#ifndef _CSHADOW_H_
|
|
#define _CSHADOW_H_
|
|
#if defined(BITCOPY)
|
|
#include <csc_bmpk.h>
|
|
#endif // defined(BITCOPY)
|
|
|
|
#define MAX_SERVER_STRING 32
|
|
#define MAX_DOS_NAME 255
|
|
#define MAX_SHADOW_NAME_SIZE 32
|
|
#define SRET_OK 0
|
|
#define SRET_ERROR -1
|
|
|
|
|
|
#define SRET_WILDCARD_HINT 1
|
|
#define SRET_OBJECT_HINT 2
|
|
|
|
|
|
#define RNMFLGS_MARK_SOURCE_DELETED 0x00000001
|
|
#define RNMFLGS_USE_FIND32_TIMESTAMPS 0x00000002
|
|
#define RNMFLGS_USE_FIND32_83NAME 0x00000004
|
|
#define RNMFLGS_SAVE_ALIAS 0x00000008
|
|
#define RNMFLGS_RETAIN_ALIAS 0x00000010
|
|
#define RNMFLGS_MARK_SOURCE_ORPHAN 0x00000020
|
|
|
|
#define AssertInShadowCrit() Assert(vfInShadowCrit)
|
|
|
|
typedef int (*LPDELETECALLBACK)(HSHADOW, HSHADOW);
|
|
extern LPDELETECALLBACK lpDeleteCBForIoctl;
|
|
|
|
#define CSHADOW_LIST_TYPE_EXCLUDE 0
|
|
#define CSHADOW_LIST_TYPE_CONSERVE_BW 1
|
|
|
|
#ifdef DEBUG
|
|
extern int vfInShadowCrit;
|
|
#endif
|
|
|
|
|
|
extern LPVOID lpdbShadow;
|
|
|
|
BOOL FExistsRecDB(
|
|
LPSTR lpszLocation
|
|
);
|
|
|
|
BOOL FExistsShadowDB(
|
|
LPSTR lpszLocation
|
|
);
|
|
|
|
int OpenShadowDB(
|
|
LPSTR lpszLocation,
|
|
LPSTR lpszUserName,
|
|
DWORD dwDefDataSizeHigh,
|
|
DWORD dwDefDataSizeLow,
|
|
DWORD dwClusterSize,
|
|
BOOL fReinit,
|
|
BOOL *lpfReinited
|
|
);
|
|
|
|
int PUBLIC CloseShadowDB(VOID);
|
|
|
|
HSHADOW HAllocShadowID(HSHADOW, BOOL);
|
|
int FreeShadowID(HSHADOW);
|
|
int GetShadowSpaceInfo(LPSHADOWSTORE);
|
|
int SetMaxShadowSpace(long nFileSizeHigh, long nFileSizeLow);
|
|
int AdjustShadowSpace(long, long, long, long, BOOL);
|
|
int AllocShadowSpace(long, long, BOOL);
|
|
int FreeShadowSpace(long, long, BOOL);
|
|
int PUBLIC GetLocalNameHSHADOW(HSHADOW, LPBYTE, int, BOOL);
|
|
int GetWideCharLocalNameHSHADOW(
|
|
HSHADOW hShadow,
|
|
USHORT *lpBuffer,
|
|
LPDWORD lpdwSize,
|
|
BOOL fExternal
|
|
);
|
|
int PUBLIC CreateFileHSHADOW(HSHADOW);
|
|
|
|
#if defined(BITCOPY)
|
|
int OpenFileHSHADOWAndCscBmp(HSHADOW, USHORT, UCHAR, CSCHFILE far *, BOOL, DWORD, LPCSC_BITMAP *);
|
|
int OpenCscBmp(HSHADOW, LPCSC_BITMAP *);
|
|
#define OpenFileHSHADOW(a, b , c, d) OpenFileHSHADOWAndCscBmp(a, b, c, d, FALSE, 0, NULL)
|
|
#endif // defined(BITCOPY)
|
|
|
|
int GetSizeHSHADOW(HSHADOW, ULONG *, ULONG *);
|
|
int GetDosTypeSizeHSHADOW(HSHADOW, ULONG *);
|
|
int PUBLIC CreateShadow(HSHADOW hDir, LPFIND32 lpFind32, ULONG uFlags, LPHSHADOW, BOOL *lpfCreated);
|
|
BOOL PUBLIC ExcludeFromCreateShadow(USHORT *lpuName, ULONG len, BOOL fCheckExclusionList);
|
|
BOOL PUBLIC CheckForBandwidthConservation(USHORT *lpuName, ULONG len);
|
|
int PUBLIC CreateShadowInternal( HSHADOW hDir, LPFIND32 lpFind32, ULONG uFlags, LPOTHERINFO lpOI, LPHSHADOW lphNew);
|
|
int PUBLIC DeleteShadow(HSHADOW hDir, HSHADOW hShadow);
|
|
int PUBLIC TruncateDataHSHADOW (HSHADOW, HSHADOW);
|
|
int PUBLIC RenameDataHSHADOW(HSHADOW, HSHADOW);
|
|
int PUBLIC GetShadow(HSHADOW hDir, USHORT *lpName, LPHSHADOW lphShadow, LPFIND32 lpFind32, ULONG *lpuShadowStatus, LPOTHERINFO lpOI);
|
|
int PUBLIC // ret
|
|
GetShadowEx( //
|
|
HSHADOW hDir,
|
|
USHORT *lpName,
|
|
LPHSHADOW lphShadow,
|
|
LPFIND32 lpFind32,
|
|
ULONG far *lpuShadowStatus,
|
|
LPOTHERINFO lpOI,
|
|
LPVOID lpSecurityBlob,
|
|
LPDWORD lpdwBlobSize
|
|
);
|
|
int PUBLIC ChkStatusHSHADOW(HSHADOW hDir, HSHADOW hNew, LPFIND32 lpFind32, ULONG far *lpuFlags);
|
|
int PUBLIC ChkUpdtStatusHSHADOW(HSHADOW hDir, HSHADOW hNew, LPFIND32 lpFind32, ULONG far *lpuFlags);
|
|
int PUBLIC GetShadowInfo(HSHADOW hDir, HSHADOW hNew, LPFIND32 lpFind32, ULONG far *lpuFlags, LPOTHERINFO lpOI);
|
|
int PUBLIC SetShadowInfo(HSHADOW hDir, HSHADOW hNew, LPFIND32 lpFind32, ULONG uFlags, ULONG uOp);
|
|
int PUBLIC RenameShadow(HSHADOW, HSHADOW, HSHADOW, LPFIND32, ULONG, LPOTHERINFO, ULONG, LPHSHADOW);
|
|
int PUBLIC
|
|
RenameShadowEx(
|
|
HSHADOW hDirFrom,
|
|
HSHADOW hShadowFrom,
|
|
HSHARE hShareTo,
|
|
HSHADOW hDirTo,
|
|
LPFIND32 lpFind32To,
|
|
ULONG uShadowStatusTo,
|
|
LPOTHERINFO lpOI,
|
|
ULONG uRenameFlags,
|
|
LPVOID lpSecurityBlobTo,
|
|
LPDWORD lpdwBlobSizeTo,
|
|
LPHSHADOW lphShadowTo
|
|
);
|
|
|
|
int PUBLIC GetShadowInfoEx
|
|
(
|
|
HSHADOW hDir,
|
|
HSHADOW hShadow,
|
|
LPFIND32 lpFind32,
|
|
ULONG far *lpuStatus,
|
|
LPOTHERINFO lpOI,
|
|
LPVOID lpSecurityBlob,
|
|
LPDWORD lpdwBlobSize
|
|
);
|
|
|
|
int PUBLIC // ret
|
|
SetShadowInfoEx( //
|
|
HSHADOW hDir,
|
|
HSHADOW hShadow,
|
|
LPFIND32 lpFind32,
|
|
ULONG uFlags,
|
|
ULONG uOp,
|
|
LPOTHERINFO lpOI,
|
|
LPVOID lpSecurityBlob,
|
|
LPDWORD lpdwBlobSize
|
|
);
|
|
|
|
|
|
int MetaMatch(HSHADOW, LPFIND32, ULONG *, LPHSHADOW, ULONG *, LPOTHERINFO, METAMATCHPROC, LPVOID);
|
|
|
|
HSHARE PUBLIC HCreateShareObj(USHORT *, LPSHADOWINFO lpSI);
|
|
int PUBLIC DestroyHSHARE(HSHARE);
|
|
int PUBLIC GetShareFromPath(USHORT *, LPSHADOWINFO);
|
|
int PUBLIC GetShareInfo(HSHARE, LPSHAREINFOW, LPSHADOWINFO);
|
|
int PUBLIC SetShareStatus(HSHARE, ULONG, ULONG);
|
|
int PUBLIC GetShareInfoEx(HSHARE, LPSHAREINFOW, LPSHADOWINFO, LPVOID, LPDWORD);
|
|
int PUBLIC SetShareStatusEx(HSHARE, ULONG, ULONG, LPVOID, LPDWORD);
|
|
int GetRenameAliasHSHADOW(HSHADOW, HSHADOW, LPHSHADOW, LPHSHADOW);
|
|
BOOL IsBusy(HSHADOW hShadow);
|
|
int PUBLIC GetAncestorsHSHADOW(HSHADOW, LPHSHADOW, LPHSHARE);
|
|
CSC_ENUMCOOKIE PUBLIC BeginPQEnum(VOID);
|
|
int PUBLIC SetPriorityHSHADOW(HSHADOW, HSHADOW, ULONG, ULONG);
|
|
int PUBLIC GetPriorityHSHADOW(HSHADOW, HSHADOW, ULONG *, ULONG *);
|
|
int PUBLIC ChangePriEntryStatusHSHADOW(HSHADOW, HSHADOW, ULONG, ULONG, BOOL, LPOTHERINFO);
|
|
int PUBLIC EndPQEnum(CSC_ENUMCOOKIE);
|
|
int PUBLIC PrevPriSHADOW(LPVOID);
|
|
int PUBLIC NextPriSHADOW(LPVOID);
|
|
|
|
|
|
BOOL
|
|
InitializeShadowCritStructures (
|
|
void
|
|
);
|
|
VOID
|
|
CleanupShadowCritStructures(
|
|
VOID
|
|
);
|
|
|
|
#ifndef CSC_RECORDMANAGER_WINNT
|
|
int EnterShadowCrit(void);
|
|
int LeaveShadowCrit(void);
|
|
#else
|
|
#if !DBG
|
|
#define ENTERLEAVESHADOWCRIT_SIGNATURE void
|
|
#define EnterShadowCrit() {__EnterShadowCrit();}
|
|
#define LeaveShadowCrit() {__LeaveShadowCrit();}
|
|
#else
|
|
#define ENTERLEAVESHADOWCRIT_SIGNATURE PSZ FileName, ULONG LineNumber
|
|
#define EnterShadowCrit() {__EnterShadowCrit(__FILE__,__LINE__);}
|
|
#define LeaveShadowCrit() {__LeaveShadowCrit(__FILE__,__LINE__);}
|
|
#endif
|
|
int __EnterShadowCrit(ENTERLEAVESHADOWCRIT_SIGNATURE);
|
|
int __LeaveShadowCrit(ENTERLEAVESHADOWCRIT_SIGNATURE);
|
|
#endif //#ifdef CSC_RECORDMANAGER_WINNT
|
|
|
|
int LeaveShadowCritIfThisThreadOwnsIt(void);
|
|
#ifdef CSC_RECORDMANAGER_WINNT
|
|
extern BOOLEAN MRxSmbIsCscEnabled;
|
|
#endif
|
|
|
|
int GetRootWithChecks(HSHARE, USHORT *, BOOL, LPHSHADOW, LPFIND32, ULONG *, LPOTHERINFO);
|
|
int GetShadowWithChecks(HSHADOW, USHORT *, USHORT *, BOOL, LPHSHADOW, LPFIND32, ULONG *, LPOTHERINFO);
|
|
|
|
|
|
|
|
int CreateHint(HSHADOW hShadow, LPFIND32 lpFind32, ULONG uHintFlags, ULONG uHintPri, LPHSHADOW lphHint);
|
|
int DeleteHint(HSHADOW hShadow, USHORT *lpuHintName, BOOL fClearAll);
|
|
int CreateGlobalHint(USHORT *lpuName, ULONG uHintFlags, ULONG uHintPri);
|
|
int DeleteGlobalHint(USHORT *lpuName, BOOL fClearAll);
|
|
int
|
|
FindCreateShare(
|
|
USHORT *lpShareName,
|
|
BOOL fCreate,
|
|
LPSHADOWINFO lpShadowInfo,
|
|
BOOL *lpfCreated
|
|
);
|
|
|
|
#ifdef CSC_RECORDMANAGER_WINNT
|
|
int FindCreateShareForNt(
|
|
PUNICODE_STRING pShareName,
|
|
BOOL fCreate,
|
|
LPSHADOWINFO lpSI,
|
|
BOOL *lpfCreated
|
|
);
|
|
#endif
|
|
|
|
int PUBLIC GetSecurityBlobHSHADOW(HSHADOW hDir, HSHADOW hShadow, LPVOID lpBuffer, LPDWORD lpdwBufferSize);
|
|
int PUBLIC SetSecurityBlobHSHADOW(HSHADOW hDir, HSHADOW hShadow, LPVOID lpBuffer, LPDWORD lpdwBufferSize);
|
|
|
|
#ifdef LATER
|
|
int PUBLIC GetPathSVROBJ(HSHARE, LPSTR, ULONG);
|
|
int PUBLIC GetLinkPropSVROBJ(HSHARE, LPLINKPROP);
|
|
int PUBLIC UpdateShadowHSHADOW(HSHADOW);
|
|
int PUBLIC ChangeShadowInfo(HSHADOW, LPSHADOWINFO);
|
|
#endif //LATER
|
|
|
|
//prototypes added to remove NT compile errors
|
|
CSC_ENUMCOOKIE PUBLIC HBeginPQEnum(VOID);
|
|
int PUBLIC EndPQEnum(CSC_ENUMCOOKIE hPQEnum);
|
|
int InitOtherInfo(LPOTHERINFO lpOI);
|
|
|
|
int PathFromHShadow(
|
|
HSHADOW hDir,
|
|
HSHADOW hShadow,
|
|
USHORT *lpBuff,
|
|
int cBuff // count of max characters that the buffer can hold
|
|
);
|
|
|
|
int CopyHSHADOW(
|
|
HSHADOW hDir,
|
|
HSHADOW hShadow,
|
|
LPSTR lpszDestinationFile,
|
|
ULONG ulATtrib
|
|
);
|
|
|
|
int BeginInodeTransactionHSHADOW(
|
|
VOID
|
|
);
|
|
|
|
int EndInodeTransactionHSHADOW(
|
|
VOID
|
|
);
|
|
|
|
int
|
|
GetSecurityInfosFromBlob(
|
|
LPVOID lpvBlob,
|
|
DWORD dwBlobSize,
|
|
LPSECURITYINFO lpSecInfo,
|
|
DWORD *lpdwItemCount
|
|
);
|
|
|
|
int SetList(
|
|
USHORT *lpList,
|
|
DWORD cbBufferSize,
|
|
int typeList
|
|
);
|
|
|
|
int
|
|
GetHShareFromUNCString(
|
|
USHORT *lpShare,
|
|
int cbShare,
|
|
int lenSkip,
|
|
BOOL fIsShareName,
|
|
HSHARE *lphShare,
|
|
ULONG *lpulHintFlags
|
|
);
|
|
|
|
int
|
|
GetDatabaseLocation(
|
|
LPSTR lpszLocation
|
|
);
|
|
|
|
BOOL
|
|
EnableHandleCaching(
|
|
BOOL fEnable
|
|
);
|
|
|
|
int
|
|
RecreateHSHADOW(
|
|
HSHADOW hDir,
|
|
HSHADOW hShadow,
|
|
ULONG ulAttribIn
|
|
);
|
|
|
|
VOID
|
|
QuerySparseStaleDetectionCount(
|
|
LPDWORD lpcnt
|
|
);
|
|
|
|
VOID
|
|
QueryManualFileDetectionCount(
|
|
LPDWORD lpcnt
|
|
);
|
|
|
|
ULONG
|
|
QueryDatabaseErrorFlags(
|
|
VOID
|
|
);
|
|
|
|
DWORD
|
|
QueryNameSpaceVersion(
|
|
VOID
|
|
);
|
|
|
|
int
|
|
HasDescendentsHShadow(
|
|
HSHADOW hDir,
|
|
HSHADOW hShadow,
|
|
BOOLEAN *lpfDescendents
|
|
);
|
|
|
|
int
|
|
SetDatabaseStatus(
|
|
ULONG ulStatus,
|
|
ULONG uMask
|
|
);
|
|
|
|
int CopyOtherInfoToShadowInfo(
|
|
LPOTHERINFO lpOI,
|
|
LPSHADOWINFO lpShadowInfo
|
|
);
|
|
|
|
#endif // #ifndef _CSHADOW_H_
|