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.
142 lines
3.3 KiB
142 lines
3.3 KiB
/*++
|
|
|
|
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__
|