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

📄 vdkioctl.h

📁 Virtual Disk Driver
💻 H
字号:
/*	vdkioctl.h	VDK WinNT kernel-mode driver interface header	Copyright (C) 2003 Ken Kato*/#ifndef _VDK_IOCTL_H_#define _VDK_IOCTL_H_//// VDK device basename//#ifdef _NTDDK_#define VDK_DEVICE_BASENAME			L"VirtualDK"#define VDK_REG_DISKNUM_VALUE		L"NumberOfDisks"#else#define VDK_DEVICE_BASENAME			"VirtualDK"#define VDK_REG_DISKNUM_VALUE		"NumberOfDisks"#endif//// Disk Device Number//#define VDK_MAXIMUM_DISK_NUM		22#define VDK_DEFAULT_DISK_NUM		4//// Device IO control values//// Get VDK driver version#define IOCTL_VDK_GET_VERSION		CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x810,				\										METHOD_BUFFERED,	\										FILE_ANY_ACCESS)// Mount existing image file or create a new image file of specified size#define IOCTL_VDK_OPEN_FILE			CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x811,				\										METHOD_BUFFERED,	\										FILE_READ_ACCESS | FILE_WRITE_ACCESS)// Update device configuration according to current image// Must be called after IOCTL_VDK_OPEN_FILE for the driver to// recognize the partitions#define IOCTL_VDK_UPDATE_DEVICE		CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x812,				\										METHOD_NEITHER,		\										FILE_READ_ACCESS | FILE_WRITE_ACCESS)// Unmount currently mounted image file#define IOCTL_VDK_CLOSE_FILE		CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x813,				\										METHOD_BUFFERED,	\										FILE_READ_ACCESS | FILE_WRITE_ACCESS)// Get total size of image file information#define IOCTL_VDK_QUERY_FILE_SIZE	CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x814,				\										METHOD_BUFFERED,	\										FILE_ANY_ACCESS)// Get currently mounted image file information#define IOCTL_VDK_QUERY_FILE		CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x815,				\										METHOD_BUFFERED,	\										FILE_ANY_ACCESS)// Get number of partition devices attached to a disk device#define IOCTL_VDK_NUMBER_OF_PARTS	CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x816,				\										METHOD_BUFFERED,	\										FILE_ANY_ACCESS)// Create new virtual disk device#define IOCTL_VDK_CREATE_DISK		CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x817,				\										METHOD_NEITHER,		\										FILE_ANY_ACCESS)// Remove the last virtual disk device#define IOCTL_VDK_DELETE_DISK		CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x818,				\										METHOD_NEITHER,		\										FILE_ANY_ACCESS)// Notify that the device is dismounted#define IOCTL_VDK_NOTIFY_DISMOUNT	CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x819,				\										METHOD_NEITHER,		\										FILE_ANY_ACCESS)// Get VDK driver information#define IOCTL_VDK_DRIVER_INFO		CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x81d,				\										METHOD_BUFFERED,	\										FILE_ANY_ACCESS)// Get VDK device information#define IOCTL_VDK_DEVICE_INFO		CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x81e,				\										METHOD_BUFFERED,	\										FILE_ANY_ACCESS)// Set driver trace flags#define IOCTL_VDK_DEBUG_TRACE		CTL_CODE(				\										IOCTL_DISK_BASE,	\										0x81f,				\										METHOD_BUFFERED,	\										FILE_ANY_ACCESS)////	VDK_DRIVER_INFO structure//typedef struct _VDK_DRIVER_INFO{	ULONG	DiskDevices;		// Number of disk devices	ULONG	AttachedParts;		// Number of attached partition devices	ULONG	OrphanedParts;		// Number of orphaned partition devices	ULONG	TotalReference;		// Total Number of reference}VDK_DRIVER_INFO, *PVDK_DRIVER_INFO;////	VDK_DEVICE_INFO structure//#define MAX_DEVNAME_LEN		36// 	DeviceType values#define VDK_DEVICE_DISK		1#define VDK_DEVICE_PART 	2typedef struct _VDK_DEVICE_INFO{	ULONG	DeviceType;	ULONG	Zombie;	CHAR	DeviceName[MAX_DEVNAME_LEN];	CHAR	SymbolicLink[MAX_DEVNAME_LEN];	ULONG	ReferenceCount;}VDK_DEVICE_INFO, *PVDK_DEVICE_INFO;#endif	// _VDK_IOCTL_H_

⌨️ 快捷键说明

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