VBoxManageDisk.cpp revision a97f26ece82a85f69a131fb74b057774c85db9c8
0N/A * available from http://www.virtualbox.org. This file is free software;
0N/A * Clara, CA 95054 USA or visit http://www.sun.com if you need
0N/A#ifndef VBOX_ONLY_DOCS
0N/A#include "VBoxManage.h"
1032N/Astatic DECLCALLBACK(void) handleVDError(void *pvUser, int rc, RT_SRC_POS_DECL, const char *pszFormat, va_list va)
return rc;
return rc;
*pb = true;
*pb = false;
return rc;
int vrc;
bool fRemember = false;
RTGetOptInit(&GetState, a->argc, a->argv, g_aCreateHardDiskOptions, RT_ELEMENTS(g_aCreateHardDiskOptions),
fRemember = true;
case VINF_GETOPT_NOT_OPTION:
if (RT_C_IS_PRINT(c))
else if (c == VERR_GETOPT_UNKNOWN_OPTION)
|| sizeMB == 0)
bool doClose = false;
if (doClose)
return VINF_SUCCESS;
int vrc;
bool AutoReset = false;
RTGetOptInit(&GetState, a->argc, a->argv, g_aModifyHardDiskOptions, RT_ELEMENTS(g_aModifyHardDiskOptions),
fModifyDiskType = true;
fModifyAutoReset = true;
fModifyCompact = true;
case VINF_GETOPT_NOT_OPTION:
if (!FilenameOrUuid)
if (RT_C_IS_PRINT(c))
else if (c == VERR_GETOPT_UNKNOWN_OPTION)
if (!FilenameOrUuid)
if (!hardDisk)
if (fModifyDiskType)
if (fModifyAutoReset)
if (fModifyCompact)
bool unknown = false;
if (!hardDisk)
unknown = true;
rc = a->virtualBox->OpenHardDisk(Bstr(FilenameOrUuid), AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), hardDisk.asOutParam());
CHECK_ERROR(a->virtualBox, OpenHardDisk(Bstr(szFilenameAbs), AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), hardDisk.asOutParam()));
CHECK_ERROR(a->virtualBox, OpenHardDisk(Bstr(FilenameOrUuid), AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), hardDisk.asOutParam()));
if (unknown)
int vrc;
bool fExisting = false;
bool fRemember = false;
bool fSetDiskType = false;
RTGetOptInit(&GetState, a->argc, a->argv, g_aCloneHardDiskOptions, RT_ELEMENTS(g_aCloneHardDiskOptions),
fExisting = true;
fRemember = true;
fSetDiskType = true;
case VINF_GETOPT_NOT_OPTION:
if (RT_C_IS_GRAPH(c))
else if (c == VERR_GETOPT_UNKNOWN_OPTION)
bool fSrcUnknown = false;
bool fDstUnknown = false;
rc = a->virtualBox->OpenHardDisk(src, AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), srcDisk.asOutParam());
CHECK_ERROR(a->virtualBox, OpenHardDisk(Bstr(szFilenameAbs), AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), srcDisk.asOutParam()));
CHECK_ERROR(a->virtualBox, OpenHardDisk(src, AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), srcDisk.asOutParam()));
fSrcUnknown = true;
if (fExisting)
rc = a->virtualBox->OpenHardDisk(dst, AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), dstDisk.asOutParam());
CHECK_ERROR_BREAK(a->virtualBox, OpenHardDisk(Bstr(szFilenameAbs), AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), dstDisk.asOutParam()));
CHECK_ERROR_BREAK(a->virtualBox, OpenHardDisk(dst, AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), dstDisk.asOutParam()));
fDstUnknown = true;
fRemember = true;
else if (fSetDiskType)
if (fSrcUnknown)
bool fReadFromStdIn = false;
RTGetOptInit(&GetState, argc, argv, g_aConvertFromRawHardDiskOptions, RT_ELEMENTS(g_aConvertFromRawHardDiskOptions),
case VINF_GETOPT_NOT_OPTION:
if (!srcfilename)
else if (!dstfilename)
if (fReadFromStdIn)
File = 0;
goto out;
if (fReadFromStdIn)
goto out;
RTPrintf("Creating %s image with size %RU64 bytes (%RU64MB)...\n", (uImageFlags & VD_IMAGE_FLAGS_FIXED) ? "fixed" : "dynamic", cbFile, (cbFile + _1M - 1) / _1M);
goto out;
goto out;
if (!pvBuf)
goto out;
offFile = 0;
cbRead = 0;
goto out;
out:
if (pvBuf)
if (pDisk)
int vrc;
bool fIntNet = false;
RTGetOptInit(&GetState, a->argc, a->argv, g_aAddiSCSIDiskOptions, RT_ELEMENTS(g_aAddiSCSIDiskOptions),
fIntNet = true;
case VINF_GETOPT_NOT_OPTION:
if (RT_C_IS_PRINT(c))
else if (c == VERR_GETOPT_UNKNOWN_OPTION)
if (fIntNet)
RTGetOptInit(&GetState, a->argc, a->argv, g_aShowHardDiskInfoOptions, RT_ELEMENTS(g_aShowHardDiskInfoOptions),
case VINF_GETOPT_NOT_OPTION:
if (!FilenameOrUuid)
if (RT_C_IS_PRINT(c))
else if (c == VERR_GETOPT_UNKNOWN_OPTION)
if (!FilenameOrUuid)
bool unknown = false;
rc = a->virtualBox->OpenHardDisk(Bstr(FilenameOrUuid), AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), hardDisk.asOutParam());
CHECK_ERROR(a->virtualBox, OpenHardDisk(Bstr(szFilenameAbs), AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), hardDisk.asOutParam()));
CHECK_ERROR(a->virtualBox, OpenHardDisk(Bstr(FilenameOrUuid), AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), hardDisk.asOutParam()));
unknown = true;
if (description)
switch (type)
case MediumType_Normal:
case MediumType_Immutable:
case MediumType_Writethrough:
if (!unknown)
if (unknown)
int vrc;
bool fDiskType = false;
bool fSetImageId = false;
bool fSetParentId = false;
fDiskType = true;
fSetImageId = true;
fSetParentId = true;
case VINF_GETOPT_NOT_OPTION:
if (!Filename)
if (RT_C_IS_PRINT(c))
else if (c == VERR_GETOPT_UNKNOWN_OPTION)
if (!Filename)
rc = a->virtualBox->OpenHardDisk(Bstr(Filename), AccessMode_ReadWrite, fSetImageId, ImageIdStr, fSetParentId, ParentIdStr, hardDisk.asOutParam());
CHECK_ERROR(a->virtualBox, OpenHardDisk(Bstr(szFilenameAbs), AccessMode_ReadWrite, fSetImageId, ImageIdStr, fSetParentId, ParentIdStr, hardDisk.asOutParam()));
CHECK_ERROR(a->virtualBox, OpenHardDisk(Bstr(Filename), AccessMode_ReadWrite, fSetImageId, ImageIdStr, fSetParentId, ParentIdStr, hardDisk.asOutParam()));
CHECK_ERROR(a->virtualBox, OpenFloppyImage(Bstr(szFilenameAbs), ImageIdStr, floppyImage.asOutParam()));
bool fDelete = false;
RTGetOptInit(&GetState, a->argc, a->argv, g_aCloseMediumOptions, RT_ELEMENTS(g_aCloseMediumOptions),
fDelete = true;
case VINF_GETOPT_NOT_OPTION:
if (!FilenameOrUuid)
if (RT_C_IS_PRINT(c))
else if (c == VERR_GETOPT_UNKNOWN_OPTION)
if (!FilenameOrUuid)
if (!medium)
if (!medium)
if (!medium)
if (fDelete)