📄 fghook.h
字号:
// FGHOOK.h - include file for VxD FGHOOK.
#include <vtoolscp.h>
#include <vxdntlib.h>
#include <kustring.h>
#include <util.h>
#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);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -