ioctl.h
来自「直接IRP操作文件的实现问题」· C头文件 代码 · 共 60 行
H
60 行
#define FILE_DEVICT_DRVTEST 0x8300
#define IOCTL_FILE_CREATE CTL_CODE(FILE_DEVICT_DRVTEST, 0x00, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_FILE_CLOSE CTL_CODE(FILE_DEVICT_DRVTEST, 0x01, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_FILE_READ CTL_CODE(FILE_DEVICT_DRVTEST, 0x02, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_FILE_WRITE CTL_CODE(FILE_DEVICT_DRVTEST, 0x03, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_FILE_DELETE CTL_CODE(FILE_DEVICT_DRVTEST, 0x04, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_HANDLE_INFO CTL_CODE(FILE_DEVICT_DRVTEST, 0x11, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_TEST_FUNCTION CTL_CODE(FILE_DEVICT_DRVTEST, 0x12, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_KILL_THREAD CTL_CODE(FILE_DEVICT_DRVTEST, 0x13, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_KILL_PROCESS CTL_CODE(FILE_DEVICT_DRVTEST, 0x14, METHOD_BUFFERED, FILE_ANY_ACCESS)
typedef struct _QUERY_HANDLE_INFO
{
ULONG Pid;
ULONG Handle;
ULONG Object;
} QUERY_HANDLE_INFO, *PQUERY_HANDLE_INFO;
typedef struct _FILE_REQUEST_CREATE
{
HANDLE FileHandle;
ULONG ShareAccess;
ULONG DesiredAccess;
ULONG CreateDisposition;
CHAR FileName[];
} FILE_REQUEST_CREATE, *PFILE_REQUEST_CREATE;
typedef struct _FILE_REQUEST_CLOSE
{
HANDLE File;
} FILE_REQUEST_CLOSE, *PFILE_REQUEST_CLOSE;
typedef struct _FILE_REQUEST_READ
{
HANDLE FileHandle;
ULONG Length;
ULONG ReadLength;
UCHAR Buffer[];
} FILE_REQUEST_READ, *PFILE_REQUEST_READ;
typedef struct _FILE_REQUEST_WRITE
{
HANDLE FileHandle;
ULONG Length;
ULONG WriteLength;
UCHAR Buffer[];
} FILE_REQUEST_WRITE, *PFILE_REQUEST_WRITE;
#ifdef WIN32
#define FILE_SUPERSEDE 0x00000000
#define FILE_OPEN 0x00000001
#define FILE_CREATE 0x00000002
#define FILE_OPEN_IF 0x00000003
#define FILE_OVERWRITE 0x00000004
#define FILE_OVERWRITE_IF 0x00000005
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?