⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ioctlcmd.h

📁 这个是FileBackup的一个组件
💻 H
字号:
#ifndef __DIRMON_IOCTLCMD_H__
#define __DIRMON_IOCTLCMD_H__

#ifndef CTL_CODE
	#include <winioctl.h>
#endif

//
// Define the various device type values.  Note that values used by Microsoft
// Corporation are in the range 0-32767, and 32768-65535 are reserved for use
// by customers.
//
#define FILE_DEVICE_DIRMON	0x00008300

//
// Version #
//
#define DIRMONVERSION    100

//
// commands that the GUI can send the device driver
//
#define DIRMON_AddMonitorPath		(ULONG) CTL_CODE( FILE_DEVICE_DIRMON, 0x00, METHOD_NEITHER, FILE_ANY_ACCESS )
#define DIRMON_RemoveMonitorPath	(ULONG) CTL_CODE( FILE_DEVICE_DIRMON, 0x01, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define DIRMON_ReadChange			(ULONG) CTL_CODE( FILE_DEVICE_DIRMON, 0x02, METHOD_NEITHER, FILE_ANY_ACCESS )
#define DIRMON_CancelReadChange		(ULONG) CTL_CODE( FILE_DEVICE_DIRMON, 0x03, METHOD_NEITHER, FILE_ANY_ACCESS )
#define DIRMON_LogDelete			(ULONG) CTL_CODE( FILE_DEVICE_DIRMON, 0x04, METHOD_NEITHER, FILE_ANY_ACCESS )
#define DIRMON_DoNotLogDelete		(ULONG) CTL_CODE( FILE_DEVICE_DIRMON, 0x05, METHOD_NEITHER, FILE_ANY_ACCESS )
#define DIRMON_StartLogging			(ULONG) CTL_CODE( FILE_DEVICE_DIRMON, 0x06, METHOD_NEITHER, FILE_ANY_ACCESS )
#define DIRMON_StopLogging			(ULONG) CTL_CODE( FILE_DEVICE_DIRMON, 0x07, METHOD_NEITHER, FILE_ANY_ACCESS )
#define DIRMON_SuspendLogging		(ULONG) CTL_CODE( FILE_DEVICE_DIRMON, 0x08, METHOD_NEITHER, FILE_ANY_ACCESS )
#define DIRMON_hookspecial	(ULONG) CTL_CODE( FILE_DEVICE_DIRMON, 0x09, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define DIRMON_unhookspecial	(ULONG) CTL_CODE( FILE_DEVICE_DIRMON, 0x10, METHOD_BUFFERED, FILE_ANY_ACCESS ) 

//
// format of a data entry
//
#pragma pack(1)
typedef struct {
	ULONG	          seq;
    LARGE_INTEGER     time;
	char	          text[1];
} ENTRY, *PENTRY;
#pragma pack()

//
// Our different file system types
//
typedef enum {
    STANDARD,
    NPFS,
    MSFS
} FILE_SYSTEM_TYPE, *PFILE_SYSTEM_TYPE;


//
// Define page size for use by GUI
//

#ifndef PAGE_SIZE
#if defined(_ALPHA_)
#define PAGE_SIZE 0x2000  // 8K
#else
#define PAGE_SIZE 0x1000  // 4K
#endif
#endif

//
// Size of a storage buffer in bytes - keep it just below 64K so that
// the total length of the buffer including the header is just below
// a page boundary, thus not wasting much space since buffer allocation
// is page-granular.
//
#define MAX_STORE       ((ULONG)(64*0x1000-(2*sizeof(ULONG)+1)))


#define DIRMON_ACTION_ADDED				0x00000001
#define DIRMON_ACTION_REMOVED			0x00000002
#define DIRMON_ACTION_MODIFIED			0x00000003
#define DIRMON_ACTION_RENAMED_OLD_NAME	0x00000004
#define DIRMON_ACTION_RENAMED_NEW_NAME	0x00000005

typedef struct _tag_DirChangeItem
{
	WORD		wNextEntryOffset;	//	bytes offset
	WORD		wAction;
	DWORD		dwDosTime;
	DWORD		dwDirectoryItem;
	CHAR		sRelativePathName[1];
} DIRCHANGEITEM, *PDIRCHANGEITEM;


#endif	//	__DIRMON_IOCTLCMD_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -