📄 dirmon.h
字号:
#ifndef __DIRMON_H__
#define __DIRMON_H__
// DIRMON.h - include file for VxD DIRMON
#include <vtoolsc.h>
#define DIRMON_Major 1
#define DIRMON_Minor 0
//#define DIRMON_DeviceID DIRMON_DEVICE_ID
//#define DIRMON_Init_Order DIRMON_INIT_ORDER
#define DIRMON_DeviceID UNDEFINED_DEVICE_ID
#define DIRMON_Init_Order UNDEFINED_INIT_ORDER
// Macro used for overlapped operation
#define PAGENUM(p) (((ULONG)(p)) >> 12)
#define _NPAGES_(p, k) ((PAGENUM((char*)p+(k-1)) - PAGENUM(p)) + 1)
//
// Partial undocumented IFSREQ structure
//
typedef struct
{
// embedded ioreq stucture
ioreq ifsir;
// the structure isn't really defined this way, but
// we take advantage of the layout for our purposes
struct hndlfunc *ifs_hndl;
ULONG reserved[10];
} ifsreq, *pifsreq;
#if 0
/* full ifsreq structure */
typedef struct
{
ioreq ifs_ir; /* 00 - nested ioreq structure */
/* These members are known only to IFSMgr */
// fhandle* ifs_pfh; /* 74 - ptr to fhandle structure */
void* ifs_pfh; /* 74 - ptr to fhandle structure */
void* ifs_psft; /* 78 - ptr to SFT entry */
// shres* ifs_psr; /* 7C - ptr to shell resource */
void* ifs_psr; /* 7C - ptr to shell resource */
DWORD ifs_pdb; /* 80 - linear base address of owner PSP */
DWORD ifs_proid; /* 84 - provider ID */
BYTE ifs_func; /* 88 - function of dispatched command */
BYTE ifs_drv; /* 89 - drive of dispatched command */
BYTE ifs_hflag; /* 8A - flags of dispatched command */
BYTE ifs_nflags; /* 8B - flags of dispatched command */
void* ifs_pbuffer; /* 8C - ptr to parse buffer */
// HVM ifs_VMHandle; /* 90 - VM of request */
void* ifs_VMHandle; /* 90 - VM of request */
void* ifs_PV; /* 94 - ptr to per-VM data area */
/* Client registers follow - three possible structures are used */
union
{
CLIENT_STRUCT ifs_crs; /* "standard" client register structure */
/* Server DOS Call structure */
/* IFSMgr_Ring0_FileIO structure */
};
} _ifsreq;
#endif
#endif // __DIRMON_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -