vmdisk.h
来自「Virtual Disk Driver」· C头文件 代码 · 共 138 行
H
138 行
/* vmdisk.h Constants and structres for VMware 4.x Virtual Disk (VMDK) Copyright (C) 2003 Ken Kato !!! CAUTION !!! Some of the information in this file may not be quite accurate. It is the result of my entirely personal research and absolutely no official information is provided by VMware,Inc. or any other sources.*/#ifndef _VMDISK_H_#define _VMDISK_H_//// Default geometry values//#define VMDK_SECTORS_IDE 63 // for IDE disks of any size#define VMDK_TRACKS_IDE 16 // for IDE disks of any size#define VMDK_SECTORS_SCSI_1023M 32 // for SCSI disks <= 1023MB#define VMDK_TRACKS_SCSI_1023M 64 // for SCSI disks <= 1023MB#define VMDK_SECTORS_SCSI_2046M 32 // for SCSI disks <= 2046MB#define VMDK_TRACKS_SCSI_2046M 128 // for SCSI disks <= 2046MB#define VMDK_SECTORS_SCSI_LARGE 63 // for SCSI disks > 2046MB#define VMDK_TRACKS_SCSI_LARGE 255 // for SCSI disks > 2046MB//// Maximum extent size for VMware 4 split virtual disks//#define VMDK_MAX_EXTENT_SPARSE 4192256L#define VMDK_MAX_EXTENT_SOLID 4193792L//// Virtual Hardware version//#define VMDK_HARDWARE_VMWARE4 3//// Header values////// VMDK signature//#define VMDK_SIGNATURE 0x564d444b // 'KDMV'//// VMDK file version//#define VMDK_FILEVER_VMWARE4 1//// VMDK flags//#define VMDK_FLAG_UNKNOWN1 0x01#define VMDK_FLAG_UNKNOWN2 0x02//// Default mapping parameters//#define VMDK_DEFAULT_GRANULARITY 128#define VMDK_DEFAULT_NUMGTESPERGT 512#define VMDK_DEFAULT_DESCOFFSET 1#define VMDK_DEFAULT_DESCSIZE 20//// VMDK header check bytes//#define VMDK_HEADER_CHECKBYTES "\x0a\x20\x0d\x0a"//// VMDK header structrure//#ifdef _MSC_VER#pragma pack(4)#endiftypedef struct _VMDK_HEADER { // offset ULONG Signature; // 0x00 - 0x03 // signature ULONG FileVersion; // 0x04 - 0x07 // VMDK header version ULONG Flags; // 0x08 - 0x0b // 0x01 ? // 0x02 ? ULONG CapacityLow; // 0x0c - 0x13 LONG CapacityHigh; // File capacity in sectors ULONG GranularityLow; // 0x14 - 0x1b LONG GranularityHigh; // number of sectors per GTE ULONG DescOffsetLow; // 0x1c - 0x23 LONG DescOffsetHigh; // offset of descriptor in sectors // 0 for multi-extent disk ULONG DescSizeLow; // 0x24 - 0x2b LONG DescSizeHigh; // length of descriptor in sectors // 0 for multi-extent disk LONG numGTEsPerGT; // 0x2c - 0x2f // Grain Table Entries per Grain // Table ULONG rgdOffsetLow; // 0x30 - 0x37 LONG rgdOffsetHigh; // Primary Grain Directory Offset // What does the 'r' stand for? ULONG gdOffsetLow; // 0x38 - 0x3f LONG gdOffsetHigh; // Backup Grain Directory Offset ULONG GrainOffsetLow; // 0x40 - 0x47 LONG GrainOffsetHigh; // Offset of the first grain CHAR Filler1[1]; // 0x48 // Unused CHAR CheckBytes[4]; // 0x49 - 0x4c // Used to check if the file was // not transfered in text mode.}#ifdef __GNUC____attribute__ ((aligned(4),packed))#endifVMDK_HEADER, *PVMDK_HEADER;#ifdef _MSC_VER#pragma pack()#endif#endif // _VMDISK_H_
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?