www.pudn.com > FileGuard.zip > FGHOOK.h


// FGHOOK.h - include file for VxD FGHOOK. 
 
#include  
#include  
#include  
#include  
 
#define DEVICE_CLASS		FGHookDevice 
#define FGHOOK_DeviceID		UNDEFINED_DEVICE_ID 
#define FGHOOK_Init_Order	UNDEFINED_INIT_ORDER 
#define FGHOOK_Major		1 
#define FGHOOK_Minor		1 
 
#define FG_VXD 
 
#include "..\HookShr\ComDef.h" 
#include "..\HookShr\HookError.h" 
#include "HookVxD.h" 
#include "..\HookShr\KProtectedFileList.h" 
#include "KHandleTable.h" 
#include "KHotKey.h" 
 
// Partial ifsreq structure. 
typedef struct  
{ 
    ioreq            ifsir; 
    struct hndlfunc  *ifs_hndl;		//undocumented tail. 
    ULONG            reserved[10]; 
} ifsreq, *pifsreq; 
 
#define FG_FILE_FLAG_HAS_STAR	1		//path has '*' 
#define FG_FILE_FLAG_HAS_QUERYMARK	2  //path has '?' 
 
#define BUF_LEN  1024 
 
///////////////////////////////////////////////////////////////// 
class FGHookDevice : public VDevice 
{ 
public: 
	virtual BOOL OnSysDynamicDeviceInit(); 
	virtual BOOL OnSysDynamicDeviceExit(); 
	virtual DWORD OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams); 
	virtual VOID PM_API_Entry(VMHANDLE hVM, CLIENT_STRUCT* pRegs); 
}; 
 
class FGHookVM : public VVirtualMachine 
{ 
public: 
	FGHookVM(VMHANDLE hVM); 
}; 
 
class FGHookThread : public VThread 
{ 
public: 
	FGHookThread(THREADHANDLE hThread); 
}; 
 
int _cdecl HookProc(pIFSFunc pfn, int fn, int Drive, int ResType, int CodePage, pioreq pir); 
WORD DoDeleteProtection(ioreq *pir, int Drive, int CodePage); 
BOOL ReadProtectedFileInfo(char *pFileName); 
BOOL  AppendBakExtension(const char *pBCSOldName, char *pBCSNewName); 
WORD FileRename(char *pBCSOldName); 
WORD FileBackupByHandle(pioreq pir, int Drive, int ResType, int CodePage,const char *pBCSName); 
WORD FileBackup(char *pBCSName); 
void  UniToBCSPathEx(PUCHAR pBCSPath, PathElement* pUniPath, int Driver, DWORD maxLength, int charSet, _QWORD* pResult); 
BOOL GetFullNameByHandle(pioreq pir,int &Drive, int ResType, int CodePage,path_t pPPath, BOOL bFindHandle); 
void SetLastError(WORD errorCode); 
WORD GetLastError(); 
BOOL SaveProtectedFileInfo(char *pFileName);      
void __stdcall MsgCallBack(DWORD ResponseCode,PVOID Refdata); 
BOOL ShellUnloadDevice(); 
BOOL ShellPostError(DWORD err, int severity); 
int wstrlen(unsigned short *uniString); 
int StringUpper(WCHAR *s, int len); 
BOOL BCSToFSDPath(FSD_PATH *fp, const char *pBCSPath); 
BOOL FSDPathMatch(FSD_PATH *pPattern, FSD_PATH *pMatcher); 
 
#ifdef DEBUG 
void PrintUni(WCHAR *p, unsigned int len=MAX_PATH); 
#endif 
//BOOL SaveOneItem(HANDLE hIniFile,PROTECTED_FILE *pProtFile);