continue;
}
- gVBoxAPI.UIVirtualBox.FindMedium(data->vboxObj, mediumFileUtf16,
- deviceType, accessMode, &medium);
+ gVBoxAPI.UIVirtualBox.FindHardDisk(data->vboxObj, mediumFileUtf16,
+ deviceType, accessMode, &medium);
if (!medium) {
PRUnichar *mediumEmpty = NULL;
}
static nsresult
-_virtualboxFindMedium(IVirtualBox *vboxObj ATTRIBUTE_UNUSED,
- PRUnichar *location ATTRIBUTE_UNUSED,
- PRUint32 deviceType ATTRIBUTE_UNUSED,
- PRUint32 accessMode ATTRIBUTE_UNUSED,
- IMedium **medium ATTRIBUTE_UNUSED)
+_virtualboxFindHardDisk(IVirtualBox *vboxObj, PRUnichar *location,
+ PRUint32 deviceType ATTRIBUTE_UNUSED,
+ PRUint32 accessMode ATTRIBUTE_UNUSED,
+ IHardDisk **hardDisk)
{
-#if VBOX_API_VERSION >= 4000000 && VBOX_API_VERSION < 4002000
+ /* In vbox 2.2 and 3.0, this function will create a IHardDisk object.
+ * In vbox 3.1 and later, this function will create a IMedium object.
+ */
+#if VBOX_API_VERSION < 4000000
+ return vboxObj->vtbl->FindHardDisk(vboxObj, location, hardDisk);
+#elif VBOX_API_VERSION < 4002000
return vboxObj->vtbl->FindMedium(vboxObj, location,
- deviceType, medium);
-#elif VBOX_API_VERSION >= 4002000
+ deviceType, hardDisk);
+#else /* VBOX_API_VERSION >= 4002000 */
return vboxObj->vtbl->OpenMedium(vboxObj, location,
- deviceType, accessMode, PR_FALSE, medium);
-#else
- vboxUnsupported();
- return 0;
-#endif
+ deviceType, accessMode, PR_FALSE, hardDisk);
+#endif /* VBOX_API_VERSION >= 4002000 */
}
static nsresult
.CreateMachine = _virtualboxCreateMachine,
.CreateHardDiskMedium = _virtualboxCreateHardDiskMedium,
.RegisterMachine = _virtualboxRegisterMachine,
- .FindMedium = _virtualboxFindMedium,
+ .FindHardDisk = _virtualboxFindHardDisk,
.OpenMedium = _virtualboxOpenMedium,
.GetHardDiskByIID = _virtualboxGetHardDiskByIID,
.FindDHCPServerByNetworkName = _virtualboxFindDHCPServerByNetworkName,
nsresult (*CreateMachine)(vboxGlobalData *data, virDomainDefPtr def, IMachine **machine, char *uuidstr);
nsresult (*CreateHardDiskMedium)(IVirtualBox *vboxObj, PRUnichar *format, PRUnichar *location, IMedium **medium);
nsresult (*RegisterMachine)(IVirtualBox *vboxObj, IMachine *machine);
- nsresult (*FindMedium)(IVirtualBox *vboxObj, PRUnichar *location, PRUint32 deviceType, PRUint32 accessMode, IMedium **medium);
+ nsresult (*FindHardDisk)(IVirtualBox *vboxObj, PRUnichar *location, PRUint32 deviceType,
+ PRUint32 accessMode, IHardDisk **hardDisk);
nsresult (*OpenMedium)(IVirtualBox *vboxObj, PRUnichar *location, PRUint32 deviceType, PRUint32 accessMode, IMedium **medium);
nsresult (*GetHardDiskByIID)(IVirtualBox *vboxObj, vboxIIDUnion *iidu, IHardDisk **hardDisk);
nsresult (*FindDHCPServerByNetworkName)(IVirtualBox *vboxObj, PRUnichar *name, IDHCPServer **server);