📄 vdiskcb.cpp
字号:
case VDISK_CB_CONF_PARENTTS: PrintMessage(MSG_CB_CONF_PARENTTS, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); break; case VDISK_CB_CONF_TIMESTAMP: PrintMessage(MSG_CB_CONF_TIMESTAMP, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); break; case VDISK_CB_CONF_CONTROLLER: PrintMessage(MSG_CB_CONF_CONTROLLER, (PCHAR)params[0], (PCHAR)params[1], (PCHAR)params[2], (PCHAR)params[3]); break; case VDISK_CB_CONF_EXTENTS: PrintMessage(MSG_CB_CONF_EXTENTS, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); break; case VDISK_CB_CONF_CYLINDERS: PrintMessage(MSG_CB_CONF_CYLINDERS, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); break; case VDISK_CB_CONF_TRACKS: PrintMessage(MSG_CB_CONF_TRACKS, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); break; case VDISK_CB_CONF_SECTORS: PrintMessage(MSG_CB_CONF_SECTORS, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); break; case VDISK_CB_CONF_CAPACITY: PrintMessage(MSG_CB_CONF_CAPACITY, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); break; case VDISK_CB_CONF_HARDWARE: PrintMessage(MSG_CB_CONF_HARDWARE, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); break; case VDISK_CB_CONF_TOOLSFLAG: PrintMessage(MSG_CB_CONF_TOOLSFLAG, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); break; case VDISK_CB_CONF_SEQNUM: PrintMessage(MSG_CB_CONF_SEQNUM, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); break; case VDISK_CB_CONF_PARENTPATH: PrintMessage(MSG_CB_CONF_PARENTPATH, (PCHAR)params[0], (PCHAR)params[1], (PCHAR)params[2], (PCHAR)params[3]); break; // prompts to ignore non-fatal conflicts // return: TRUE yes // FALSE no case VDISK_CB_CONFLICT_IGNORE: ret = (InputChar(MSG_PROMPT_ABORTIGNORE, "ai") == 'i'); break; // 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 case VDISK_CB_COWD_CAPACITY: PrintMessage(MSG_CB_COWD_CAPACITY, (PCHAR)params[0], (ULONG)params[1], (ULONG)params[2]); break; // Invalid cowd version // params[0]: PCHAR path // params[1]: ULONG bad version // return: correct version case VDISK_CB_COWD_FILEVER: PrintMessage(MSG_CB_COWD_FILEVER, (PCHAR)params[0], (ULONG)params[1]); ret = (InputChar(MSG_PROMPT_ABORTIGNORE, "ai") == 'i') ? COWD_FILEVER_VMWARE3 : 0; break; // File geometry values inconsistent or capacity = 0 // params[0]: PCHAR path // params[1]: PCOWD_SECTOR_0 sec0 // return: NONE case VDIDK_CB_COWD_FILEGEOM: PrintMessage(MSG_CB_COWD_GEOMETRY, (PCHAR)params[0], ((PCOWD_SECTOR_0)params[1])->u.Geometry.Cylinders, ((PCOWD_SECTOR_0)params[1])->u.Geometry.Tracks, ((PCOWD_SECTOR_0)params[1])->u.Geometry.Sectors, ((PCOWD_SECTOR_0)params[1])->Capacity); break; // Disk geometry values inconsistent or capacity = 0 // params[0]: PCHAR path // params[1]: PCOWD_SECTOR_3 sec3 // return: NONE case VDISK_CB_COWD_DISKGEOM: PrintMessage(MSG_CB_COWD_GEOMETRY, (PCHAR)params[0], ((PCOWD_SECTOR_3)params[1])->Cylinders, ((PCOWD_SECTOR_3)params[1])->Tracks, ((PCOWD_SECTOR_3)params[1])->Sectors, ((PCOWD_SECTOR_3)params[1])->DiskCapacity); break; // parent path length // params[0]: PCHAR path // params[1]: PCHAR parent_path // return: TRUE correct // FALSE abort case VDISK_CB_COWD_PARENT: PrintMessage(MSG_CB_COWD_PARENT, (PCHAR)params[0], (PCHAR)params[1]); break; // 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 case VDISK_CB_COWD_MAPSIZE: PrintMessage(MSG_CB_COWD_MAPSIZE, (PCHAR)params[0], (ULONG)params[1], (ULONG)params[2]);/* if (InputChar(MSG_PROMPT_ABORTIGNORE, "ai") == 'i') { ret = (ULONG)params[1]; }*/ break; // 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 case VDISK_CB_COWD_ENDOFFILE: PrintMessage(MSG_CB_COWD_ENDOFFILE, (PCHAR)params[0], (ULONG)params[1], (ULONG)params[2]); ret = TRUE;; break; // cowd_sec2->TimeStamp != cowd_sec3->TimeStamp // params[0]: PCHAR path // params[1]: ULONG timestamp1 // params[2]: ULONG timestamp2 // return: TRUE ignore // FALSE fail case VDISK_CB_COWD_TIMESTAMP: PrintMessage(MSG_CB_COWD_TIMESTAMP, (PCHAR)params[0], (ULONG)params[1], (ULONG)params[2]); ret = (InputChar(MSG_PROMPT_ABORTIGNORE, "ai") == 'i'); break; // VMDK descriptor is not found in the file // params[0]: PCHAR path // return: NONE case VDISK_CB_VMDK_NODESC: PrintMessage(MSG_CB_VMDK_NODESC, (PCHAR)params[0]); break; // Invalid vmdk version // params[0]: PCHAR path // params[1]: ULONG bad version // return: correct version case VDISK_CB_VMDK_FILEVER: PrintMessage(MSG_CB_VMDK_FILEVER, (PCHAR)params[0], (ULONG)params[1]); ret = (InputChar(MSG_PROMPT_ABORTIGNORE, "ai") == 'i') ? VMDK_FILEVER_VMWARE4 : 0; break; // Invalid vmdk capacity // params[0]: PCHAR path // params[1]: PINT64 bad value // return: TRUE ignore / corrected // FALSE abort case VDISK_CB_VMDK_FILECAP: PrintMessage(MSG_CB_VMDK_FILECAP, (PCHAR)params[0], I64PRM(params[1])); break; // Invalid vmdk granularity // params[0]: PCHAR path // params[1]: PINT64 bad value // return: TRUE ignore / corrected // FALSE abort case VDISK_CB_VMDK_GRANULARITY: PrintMessage(MSG_CB_VMDK_GRANULARITY, (PCHAR)params[0], I64PRM(params[1])); break; // Invalid vmdk descriptor offset // params[0]: PCHAR path // params[1]: PINT64 bad value // return: TRUE ignore / corrected // FALSE abort case VDISK_CB_VMDK_DESCOFFSET: PrintMessage(MSG_CB_VMDK_DESCOFFSET, (PCHAR)params[0], I64PRM(params[1])); break; // Invalid vmdk descriptor size // params[0]: PCHAR path // params[1]: PINT64 bad value // return: TRUE ignore / corrected // FALSE abort case VDISK_CB_VMDK_DESCSIZE: PrintMessage(MSG_CB_VMDK_DESCSIZE, (PCHAR)params[0], I64PRM(params[1])); break; // Invalid vmdk GTEsPerGT value // params[0]: PCHAR path // params[1]: ULONG bad value // return: TRUE ignore / corrected // FALSE abort case VDISK_CB_VMDK_GTESPERGT: PrintMessage(MSG_CB_VMDK_GTESPERGT, (PCHAR)params[0], (ULONG)params[1]); break; // Invalid vmdk grain dictionary offset // params[0]: PCHAR path // params[1]: PINT64 bad value // return: TRUE ignore / corrected // FALSE abort case VDISK_CB_VMDK_GDOFFSET: PrintMessage(MSG_CB_VMDK_GDOFFSET, (PCHAR)params[0], I64PRM(params[1])); break; // Invalid vmdk grain offset // params[0]: PCHAR path // params[1]: PINT64 bad value // return: TRUE ignore / corrected // FALSE abort case VDISK_CB_VMDK_GRAINOFFSET: PrintMessage(MSG_CB_VMDK_GRAINOFFSET, (PCHAR)params[0], I64PRM(params[1])); break; // Invalid vmdk check bytes // params[0]: PCHAR path // return: TRUE ignore / corrected // FALSE abort case VDISK_CB_VMDK_CHECKBYTES: PrintMessage(MSG_CB_VMDK_CHECKBYTES, (PCHAR)params[0]); ret = (InputChar(MSG_PROMPT_ABORTIGNORE, "ai") == 'i'); break; // 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 case VDISK_CB_VMDK_SIZEMISMATCH: PrintMessage(MSG_CB_VMDK_SIZEMISMATCH, (PCHAR)params[0], (ULONG)params[1], (ULONG)params[2]); ret = (InputChar(MSG_PROMPT_YESNO, "yn") == 'y'); break; // 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 case VDISK_CB_PARENT_CAPACITY: PrintMessage(MSG_CB_PARENT_CAPACITY, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); break; // 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 case VDISK_CB_PARENT_CONTROLLER: PrintMessage(MSG_CB_PARENT_CONTROLLER, (PCHAR)params[0], (ULONG)params[1] == VDISK_CONTROLLER_SCSI ? "SCSI" : "IDE", (PCHAR)params[2], (ULONG)params[3] == VDISK_CONTROLLER_SCSI ? "SCSI" : "IDE"); ret = (InputChar(MSG_PROMPT_ABORTIGNORE, "ai") == 'i'); break; // 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 case VDISK_CB_PARENT_TIMESTAMP: PrintMessage(MSG_CB_PARENT_TIMESTAMP, (PCHAR)params[0], (ULONG)params[1], (PCHAR)params[2], (ULONG)params[3]); ret = (InputChar(MSG_PROMPT_ABORTIGNORE, "ai") == 'i'); break; default: fprintf(stderr, "Unknown Callback reason %lu\n", reason); break; } return ret;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -