/*++ Copyright (c) 1989 Microsoft Corporation Module Name: HookCmmn.h Abstract: This module defines the routines that are in common between the win9x and nt hooks. Author: JoeLinn [JoeLinn] 8-Apr-1997 Revision History: --*/ #ifndef __INCLUDED__CSC__HOOKCMMN__ #define __INCLUDED__CSC__HOOKCMMN__ extern ULONG hthreadReint; //BUGBUG why should a thread be a ULONG???? extern ULONG hwndReint; extern PFILEINFO pFileInfoAgent; extern HSERVER hShareReint; // Share that is currently being reintegrated extern int fShadow, fLog, fNoShadow, /*fShadowFind,*/ fSpeadOpt; extern WIN32_FIND_DATA vsFind32; extern int cMacPro; extern NETPRO rgNetPro[]; extern VMM_SEMAPHORE semHook; extern GLOBALSTATUS sGS; extern ULONG proidShadow; extern ULONG heventReint; #define FLAG_FDB_SERIALIZE 0x0001 #define FLAG_FDB_INUSE_BY_AGENT 0x0002 #define FLAG_FDB_SHADOW_MODIFIED 0x0008 #define FLAG_FDB_DONT_SHADOW 0x0010 #define FLAG_FDB_FINAL_CLOSE_DONE 0x0020 int ReinitializeDatabase( LPSTR lpszLocation, LPSTR lpszUserName, DWORD nFileSizeHigh, DWORD nFileSizeLow, DWORD dwClusterSize ); int InitDatabase( LPSTR lpszLocation, LPSTR lpszUserName, DWORD nFileSizeHigh, DWORD nFileSizeLow, DWORD dwClusterSize, BOOL fReformat, BOOL *lpfNew ); BOOL IsShadowVisible( #ifndef MRXSMB_BUILD_FOR_CSC_DCON PVOID pResource, //PRESOURCE pResource, #else BOOLEAN Disconnected, #endif DWORD dwAttr, ULONG uShadowStatus ); int MarkShareDirty( PUSHORT ShareStatus, ULONG hShare ); //////////////////////////////////////////////////////////////////////////////// ///////// T U N N E L // Timeout in seconds for tunnelled entries // after this many seconds a tunnelled entry is thrown away #define STALE_TUNNEL_INFO 45 typedef struct tagSH_TUNNEL { HSHADOW hDir; ULONG uTime; UCHAR ubHintFlags; UCHAR ubRefPri; UCHAR ubHintPri; UCHAR ubIHPri; USHORT cAlternateFileName[14]; USHORT * lpcFileName; } SH_TUNNEL, *LPSH_TUNNEL; BOOL InsertTunnelInfo( HSHADOW hDir, USHORT *lpcFileName, USHORT *lpcAlternateFileName, LPOTHERINFO lpOI ); #ifndef MRXSMB_BUILD_FOR_CSC_DCON BOOL RetrieveTunnelInfo( #else typedef enum _RETRIEVE_TUNNEL_INFO_RETURNS { TUNNEL_RET_NOTFOUND = 0, TUNNEL_RET_SHORTNAME_TUNNEL = 'S', TUNNEL_RET_LONGNAME_TUNNEL = 'L' } RETRIEVE_TUNNEL_INFO_RETURNS; RETRIEVE_TUNNEL_INFO_RETURNS RetrieveTunnelInfo( #endif HSHADOW hDir, USHORT *lpcFileName, WIN32_FIND_DATA *lpFind32, LPOTHERINFO lpOI ); VOID FreeStaleEntries(); void FreeEntry(LPSH_TUNNEL lpshTunnel); BOOL FailModificationsToShare( LPSHADOWINFO lpSI ); void IncrementActivityCountForShare( HSERVER hShare ); BOOL CSCFailUserOperation( HSERVER hShare ); // Macro used to check whether shadowing operations should be done or not // in any given filesystem API call. The global swicth fShadow can be set/reset // by ring3 agent through an ioctl #define ShadowingON() ((fShadow != 0) && !IsSpecialApp()) #endif //ifndef __INCLUDED__CSC__HOOKCMMN__