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

📄 vdiskutil.h

📁 Virtual Disk Driver
💻 H
字号:
/*	VDiskUtil.h	VDisk utility function header	Copyright (C) 2003 Ken Kato*/#ifndef _VDISKUTIL_H_#define _VDISKUTIL_H_#ifdef __cplusplusextern "C" {#endif	// __cplusplus////	Virtual disk flags//#define VDISK_FLAG_SINGLE	0x00000001#define VDISK_FLAG_SPARSE	0x00000002#define VDISK_FLAG_CHILD	0x00000004#define VDISK_FLAG_ABSPATH	0x00000008#define VDISK_FLAG_DIRTY	0x80000000////	Extent creation flags//#define VDISK_CREATE_SPARSE	0x00000001#define VDISK_CREATE_FORCE	0x00000002#define VDISK_CREATE_SINGLE	0x00000004////	Controller type//enum {	VDISK_CONTROLLER_NONE = 0,	VDISK_CONTROLLER_IDE,	VDISK_CONTROLLER_SCSI};////	Virtual Disk callback reasons//enum {	//	Cannot open specified file	//	params[0]:	PCHAR	path,	//	params[1]:	VDKSTAT	error	//	return:		TRUE	retry with new path stored into params[0]	//				FALSE	fail	VDISK_CB_FILE_OPEN,	//	Confirms the user if the file is raw sector image file	//	params[0]	PCHAR	path	//	return		TRUE	the file is a raw sector image file	//				FALSE	abort	VDISK_CB_FILE_TYPE,	//	Confirmation for applying fixes to actual file	//	params[0]	PCHAR	path	//	return		TRUE	update the actual file	//				FALSE	do not update the actual file	VDISK_CB_CONFIRM_FIX,	//	Descriptor file does not contain any extent entry (FATAL)	//	params[0]	PCHAR	path	//	return		NONE	VDISK_CB_EMPTY_IMAGE,	//	Extent file size is not proper multiple of sector size	//	params[0]:	PCHAR	path	//	params[1]:	PINT64	size	//	return:		TRUE	ignore / correct	//				FALSE	abort	VDISK_CB_SIZE_BOUNDARY,	//	Invalid signature	//	params[0]:	PCHAR	path	//	params[1]:	ULONG	bad signature	//	return:		TRUE	ignore / correct	//				FALSE	abort	VDISK_CB_SIGNATURE,	//	Unknown controller type in virtual disk file	//	params[0]:	PCHAR	path	//	params[1]:	PCHAR	invalid entry	//	return:		correct value	//				0: abort	VDISK_CB_CONTROLLER,	//	bad hardware version in virtual disk file	//	params[0]:	PCHAR	path	//	params[1]:	PCHAR	invalid entry	//	return:		correct value	//				0: abort	VDISK_CB_HARDWAREVER,	//	Unrecognizable entry in description file	//	params[0]:	PCHAR	path	//	params[1]:	PCHAR	invalid entry	//	return:		TRUE	ignore	//				FALSE	abort	VDISK_CB_DESC_BADENTRY,	//	bad offset value in description file	//	params[0]:	PCHAR	path	//	params[1]:	PCHAR	invalid entry	//	return:		correct offset value	//				-1: abort	VDISK_CB_DESC_OFFSET,	//	bad capacity value in description file	//	params[0]:	PCHAR	path	//	params[1]:	PCHAR	invalid entry	//	return:		correct capacity value	//				0: abort	VDISK_CB_DESC_CAPACITY,	//	invalid geometry values in description file	//	params[0]:	PCHAR	path	//	params[1]:	PCHAR	invalid entry	//	return:		correct value	//				0: abort	VDISK_CB_DESC_GEOMETRY,	//	Unknown extent type in virtual disk file	//	params[0]:	PCHAR	path	//	params[1]:	PCHAR	invalid entry	//	return:		VDK_FILETYPE value	VDISK_CB_DESC_FILETYPE,	//	bad timestamp value in virtual disk file	//	params[0]:	PCHAR	path	//	params[1]:	PCHAR	invalid entry	//	return:		correct value	//				0: abort	VDISK_CB_DESC_TIMESTAMP,	//	Unknown disk type in virtual disk file	//	params[0]:	PCHAR	path	//	params[1]:	PCHAR	invalid entry	//	return:		correct value	//				0: abort	VDISK_CB_DESC_DISKTYPE,	//	described offset does not match actual offset	//	params[0]:	PCHAR	path	//	params[1]:	ULONG	described offset	//	params[2]:	ULONG	calculated offset	//	return		TRUE	use correct value	//				FALSE	abort	VDISK_CB_EXT_OFFSET,	//	described capacity does not match actual file size	//	params[0]:	PCHAR	path	//	params[1]:	ULONG	described size	//	params[2]:	ULONG	calculated size	//	return:		correct capacity	//				0	abort	VDISK_CB_EXT_FILESIZE,	//	described disk capacity does not match the total of extents	//	params[0]:	PCHAR	path	//	params[1]:	ULONG	described capacity	//	params[2]:	ULONG	calculated capacity	//	return:		TRUE	corrected or ignore	//				FALSE	abort	VDISK_CB_EXT_CAPACITY,	//	Ordinal stored in an extent file does not match the actual order	//	params[0]:	PCHAR	path	//	params[1]:	ULONG	ordinal in the header	//	params[2]:	ULONG	correct ordinal	//	return:		TRUE	corrected or ignore	//				FALSE	abort	VDISK_CB_COWD_ORDINAL,	//	Parameter conflict between extents	//	params[0]:	PCHAR	path1	//	params[1]:			value1	//	params[1]:	PCHAR	path2	//	params[3]:			value2	//	return:		TRUE	corrected or ignore	//				FALSE	abort	VDISK_CB_CONF_FILEVER,	VDISK_CB_CONF_FLAGS,	VDISK_CB_CONF_PARENTTS,	VDISK_CB_CONF_TIMESTAMP,	VDISK_CB_CONF_CONTROLLER,	VDISK_CB_CONF_EXTENTS,	VDISK_CB_CONF_CYLINDERS,	VDISK_CB_CONF_TRACKS,	VDISK_CB_CONF_SECTORS,	VDISK_CB_CONF_CAPACITY,	VDISK_CB_CONF_HARDWARE,	VDISK_CB_CONF_TOOLSFLAG,	VDISK_CB_CONF_SEQNUM,	VDISK_CB_CONF_PARENTPATH,	//	prompts to ignore non-fatal conflicts	//	return:		TRUE	yes	//				FALSE	no	VDISK_CB_CONFLICT_IGNORE,	//	disk capacity stored in the header does not match the total of extents	//	params[0]:	PCHAR	path	//	params[1]:	ULONG	stored capacity	//	params[2]:	ULONG	total capacity	//	return:		TRUE	corrected or ignore	//				FALSE	abort	VDISK_CB_COWD_CAPACITY,	//	Invalid cowd version	//	params[0]:	PCHAR	path	//	params[1]:	ULONG	bad version	//	return:		correct version	VDISK_CB_COWD_FILEVER,	//	File geometry values inconsistent or capacity = 0	//	params[0]:	PCHAR			path	//	params[1]:	PCOWD_SECTOR_0	sec0	//	return:		NONE	VDIDK_CB_COWD_FILEGEOM,	//	Disk geometry values inconsistent or capacity = 0	//	params[0]:	PCHAR			path	//	params[1]:	PCOWD_SECTOR_3	sec3	//	return:		NONE	VDISK_CB_COWD_DISKGEOM,	//	parent path length	//	params[0]:	PCHAR	path	//	params[1]:	PCHAR	parent_path	//	return:		NONE	VDISK_CB_COWD_PARENT,	//	Mapsize values in COWD header is inconsistent with capacity	//	params[0]:	PCHAR	path	//	params[2]:	ULONG	wrong value	//	params[1]:	ULONG	correct value	//	return:		corrected map size	VDISK_CB_COWD_MAPSIZE,	//	EndOfFile value does not match actual file size	//	params[0]:	PCHAR	path	//	params[2]:	ULONG	wrong value	//	params[1]:	ULONG	correct value	//	return:		TRUE	ignore	//				FALSE	fail	VDISK_CB_COWD_ENDOFFILE,	//	cowd_sec2->TimeStamp != cowd_sec3->TimeStamp	//	params[0]:	PCHAR	path	//	params[1]:	ULONG	timestamp1	//	params[2]:	ULONG	timestamp2	//	return:		TRUE	ignore	//				FALSE	fail	VDISK_CB_COWD_TIMESTAMP,	//	VMDK descriptor is not found in the file	//	params[0]:	PCHAR	path	//	return:		NONE	VDISK_CB_VMDK_NODESC,	//	Invalid vmdk version	//	params[0]:	PCHAR	path	//	params[1]:	ULONG	bad version	//	return:		correct version	VDISK_CB_VMDK_FILEVER,	//	Invalid vmdk capacity	//	params[0]:	PCHAR	path	//	params[1]:	PINT64	bad value	//	return:		TRUE	ignore / corrected	//				FALSE	abort	VDISK_CB_VMDK_FILECAP,	//	Invalid vmdk granularity	//	params[0]:	PCHAR	path	//	params[1]:	PINT64	bad value	//	return:		TRUE	ignore / corrected	//				FALSE	abort	VDISK_CB_VMDK_GRANULARITY,	//	Invalid vmdk descriptor offset	//	params[0]:	PCHAR	path	//	params[1]:	PINT64	bad value	//	return:		TRUE	ignore / corrected	//				FALSE	abort	VDISK_CB_VMDK_DESCOFFSET,	//	Invalid vmdk descriptor size	//	params[0]:	PCHAR	path	//	params[1]:	PINT64	bad value	//	return:		TRUE	ignore / corrected	//				FALSE	abort	VDISK_CB_VMDK_DESCSIZE,	//	Invalid vmdk GTEsPerGT value	//	params[0]:	PCHAR	path	//	params[1]:	ULONG	bad value	//	return:		TRUE	ignore / corrected	//				FALSE	abort	VDISK_CB_VMDK_GTESPERGT,	//	Invalid vmdk grain dictionary offset	//	params[0]:	PCHAR	path	//	params[1]:	PINT64	bad value	//	return:		TRUE	ignore / corrected	//				FALSE	abort	VDISK_CB_VMDK_GDOFFSET,	//	Invalid vmdk grain offset	//	params[0]:	PCHAR	path	//	params[1]:	PINT64	bad value	//	return:		TRUE	ignore / corrected	//				FALSE	abort	VDISK_CB_VMDK_GRAINOFFSET,	//	Invalid vmdk check bytes	//	params[0]:	PCHAR	path	//	return:		TRUE	ignore / corrected	//				FALSE	abort	VDISK_CB_VMDK_CHECKBYTES,	//	VMDK capacity in the header and descriptor mismatch	//	params[0]:	PCHAR	path	//	params[1]:	ULONG	size in the header	//	params[2]:	ULONG	size in the descriptor	//	return:		TRUE	ignore / corrected	//				FALSE	abort	VDISK_CB_VMDK_SIZEMISMATCH,	//	Capacity of the child and the parent do not match	//	params[0]:	PCHAR	child path	//	params[1]:	ULONG	child capacity	//	params[2]:	PCHAR	parent path	//	params[3]:	ULONG	parent capacity	//	return:		NONE	this is fatal	VDISK_CB_PARENT_CAPACITY,	//	Controller type of the child and the parent do not match	//	params[0]:	PCHAR	child path	//	params[1]:	ULONG	child controller	//	params[2]:	PCHAR	parent path	//	params[3]:	ULONG	parent controller	//	return:		TRUE	ignore / corrected	//				FALSE	abort	VDISK_CB_PARENT_CONTROLLER,	//	Child's ParentTS and Parent's Timestamp do not match	//	params[0]:	PCHAR	child path	//	params[1]:	ULONG	child ParentTS	//	params[2]:	PCHAR	parent path	//	params[3]:	ULONG	parent Timestamp	//	return:		TRUE	ignore / corrected	//				FALSE	abort	VDISK_CB_PARENT_TIMESTAMP,};////	Create and Initialize a new VDisk instance from existing files//VDKSTAT VDiskLoadFile(PVOID *ppDisk, PCHAR pPath, PCHAR pBasePath);////	Create all ancestors of a virtual disk//VDKSTAT VDiskCreateTree(PVOID pDisk);////	Create a REDO log for a virtual disk//VDKSTAT VDiskCreateRedo(PVOID *ppDisk);////	Delete VDisk Tree//VOID VDiskDelete(PVOID pDisk);////	Search specified file//VDKSTAT VDiskSearchFile(HANDLE *pFile, PCHAR pPath, PCHAR pBase);////	build VDK_OPEN_FILE_INFO structure//VDKSTAT VDiskMapToOpenInfo(	PVOID pDisk,	PVOID *ppInfo,	PULONG pInfoLen);PCHAR	VDiskGetDiskName(PVOID pDisk);////	Virtual disk check callback function//typedef ULONG(*VDISK_CALLBACK)(ULONG reason, PVOID *params);extern VDISK_CALLBACK VDiskCallBack;void VDiskSetCallBack(VDISK_CALLBACK cb);ULONG VDiskCallback(ULONG reason, PVOID *params);#ifdef __cplusplus}#endif	// __cplusplus#endif	// _VDISKUTIL_H_

⌨️ 快捷键说明

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