www.pudn.com > Irp-Files.rar > ioctl.h


 
#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