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);