434
519
RTPrintf("3D Acceleration: %s\n", accelerate3d ? "on" : "off");
436
ComPtr<IFloppyDrive> floppyDrive;
437
rc = machine->COMGETTER(FloppyDrive)(floppyDrive.asOutParam());
438
if (SUCCEEDED(rc) && floppyDrive)
521
#ifdef VBOX_WITH_VIDEOHWACCEL
522
BOOL accelerate2dVideo;
523
machine->COMGETTER(Accelerate2DVideoEnabled)(&accelerate2dVideo);
524
if (details == VMINFO_MACHINEREADABLE)
525
RTPrintf("accelerate2dvideo=\"%s\"\n", accelerate2dVideo ? "on" : "off");
527
RTPrintf("2D Video Acceleration: %s\n", accelerate2dVideo ? "on" : "off");
530
BOOL teleporterEnabled;
531
machine->COMGETTER(TeleporterEnabled)(&teleporterEnabled);
532
if (details == VMINFO_MACHINEREADABLE)
533
RTPrintf("teleporterenabled=\"%s\"\n", teleporterEnabled ? "on" : "off");
535
RTPrintf("Teleporter Enabled: %s\n", teleporterEnabled ? "on" : "off");
537
ULONG teleporterPort;
538
machine->COMGETTER(TeleporterPort)(&teleporterPort);
539
if (details == VMINFO_MACHINEREADABLE)
540
RTPrintf("teleporterport=%u\n", teleporterPort);
542
RTPrintf("Teleporter Port: %u\n", teleporterPort);
544
Bstr teleporterAddress;
545
machine->COMGETTER(TeleporterAddress)(teleporterAddress.asOutParam());
546
if (details == VMINFO_MACHINEREADABLE)
547
RTPrintf("teleporteraddress=\"%lS\"\n", teleporterAddress.raw());
549
RTPrintf("Teleporter Address: %lS\n", teleporterAddress.raw());
551
Bstr teleporterPassword;
552
machine->COMGETTER(TeleporterPassword)(teleporterPassword.asOutParam());
553
if (details == VMINFO_MACHINEREADABLE)
554
RTPrintf("teleporterpassword=\"%lS\"\n", teleporterPassword.raw());
556
RTPrintf("Teleporter Password: %lS\n", teleporterPassword.raw());
559
* Storage Controllers and their attached Mediums.
561
com::SafeIfaceArray<IStorageController> storageCtls;
562
CHECK_ERROR(machine, COMGETTER(StorageControllers)(ComSafeArrayAsOutParam (storageCtls)));
563
for (size_t i = 0; i < storageCtls.size(); ++ i)
441
floppyDrive->COMGETTER(Enabled)(&fFloppyEnabled);
442
Utf8Str pszFloppy = "invalid";
445
DriveState_T floppyState;
446
floppyDrive->COMGETTER(State)(&floppyState);
449
case DriveState_ImageMounted:
451
ComPtr<IFloppyImage> floppyImage;
452
rc = floppyDrive->GetImage(floppyImage.asOutParam());
453
if (SUCCEEDED(rc) && floppyImage)
456
floppyImage->COMGETTER(Location)(imagePath.asOutParam());
458
floppyImage->COMGETTER(Id)(imageGuid.asOutParam());
459
if (details == VMINFO_MACHINEREADABLE)
461
RTPrintf("FloppyImageUUID=\"%s\"\n", Utf8Str(imageGuid).raw());
462
pszFloppy = Utf8StrFmt("%lS", imagePath.raw());
465
pszFloppy = Utf8StrFmt("%lS (UUID: %s)", imagePath.raw(), Utf8Str(imageGuid).raw());
470
case DriveState_HostDriveCaptured:
472
ComPtr<IHostFloppyDrive> hostFloppyDrive;
473
rc = floppyDrive->GetHostDrive(hostFloppyDrive.asOutParam());
474
if (SUCCEEDED(rc) && floppyDrive)
477
hostFloppyDrive->COMGETTER(Name)(driveName.asOutParam());
478
if (details == VMINFO_MACHINEREADABLE)
479
pszFloppy = Utf8StrFmt("host:%lS", driveName.raw());
481
pszFloppy = Utf8StrFmt("Host drive %lS", driveName.raw());
486
case DriveState_NotMounted:
495
pszFloppy = "disabled";
565
ComPtr<IStorageController> storageCtl = storageCtls[i];
566
StorageControllerType_T enmCtlType = StorageControllerType_Null;
567
const char *pszCtl = NULL;
571
storageCtl->COMGETTER(Name)(storageCtlName.asOutParam());
497
572
if (details == VMINFO_MACHINEREADABLE)
498
RTPrintf("floppy=\"%s\"\n", pszFloppy.raw());
573
RTPrintf("storagecontrollername%u=\"%lS\"\n", i, storageCtlName.raw());
500
RTPrintf("Floppy: %s\n", pszFloppy.raw());
506
* Contributed by: James Lucas
508
#ifdef VBOX_WITH_AHCI
509
ComPtr<IStorageController> SataCtl;
510
bool fSataEnabled = false;
512
rc = machine->GetStorageControllerByName(Bstr("SATA"), SataCtl.asOutParam());
516
if (details == VMINFO_MACHINEREADABLE)
517
RTPrintf("sata=\"%s\"\n", fSataEnabled ? "on" : "off");
519
RTPrintf("SATA: %s\n", fSataEnabled ? "enabled" : "disabled");
526
ComPtr<IHardDisk> hardDisk;
530
SataCtl->COMGETTER(PortCount)(&cSataPorts);
531
for (ULONG i = 0; i < cSataPorts; ++ i)
533
rc = machine->GetHardDisk(Bstr("SATA"), i, 0, hardDisk.asOutParam());
534
if (SUCCEEDED(rc) && hardDisk)
536
hardDisk->COMGETTER(Location)(filePath.asOutParam());
537
hardDisk->COMGETTER(Id)(uuid.asOutParam());
538
if (details == VMINFO_MACHINEREADABLE)
540
RTPrintf("sataport%d=\"%lS\"\n", i, filePath.raw());
541
RTPrintf("SataPortImageUUID%d=\"%s\"\n", i, Utf8Str(uuid).raw());
544
RTPrintf("SATA %d: %lS (UUID: %s)\n", i, filePath.raw(), Utf8Str(uuid).raw());
548
if (details == VMINFO_MACHINEREADABLE)
549
RTPrintf("sata%d=\"none\"\n",i);
558
ComPtr<IStorageController> ideController;
560
rc = machine->GetStorageControllerByName(Bstr("IDE"), ideController.asOutParam());
561
if (SUCCEEDED(rc) && ideController)
563
StorageControllerType_T enmIdeController;
564
const char *pszIdeController = NULL;
566
rc = ideController->COMGETTER(ControllerType)(&enmIdeController);
568
switch (enmIdeController)
575
RTPrintf("Storage Controller Name (%u): %lS\n", i, storageCtlName.raw());
577
storageCtl->COMGETTER(ControllerType)(&enmCtlType);
580
case StorageControllerType_LsiLogic:
583
case StorageControllerType_BusLogic:
586
case StorageControllerType_IntelAhci:
587
pszCtl = "IntelAhci";
570
589
case StorageControllerType_PIIX3:
571
pszIdeController = "PIIX3";
573
592
case StorageControllerType_PIIX4:
574
pszIdeController = "PIIX4";
576
595
case StorageControllerType_ICH6:
577
pszIdeController = "ICH6";
598
case StorageControllerType_I82078:
580
pszIdeController = "unknown";
582
if (details == VMINFO_MACHINEREADABLE)
583
RTPrintf("idecontroller=\"%s\"\n", pszIdeController);
585
RTPrintf("IDE Controller: %s\n", pszIdeController);
588
ComPtr<IHardDisk> hardDisk;
590
rc = machine->GetHardDisk(Bstr("IDE"), 0, 0, hardDisk.asOutParam());
591
if (SUCCEEDED(rc) && hardDisk)
593
hardDisk->COMGETTER(Location)(filePath.asOutParam());
594
hardDisk->COMGETTER(Id)(uuid.asOutParam());
595
if (details == VMINFO_MACHINEREADABLE)
597
RTPrintf("hda=\"%lS\"\n", filePath.raw());
598
RTPrintf("HdaImageUUID=\"%s\"\n", Utf8Str(uuid).raw());
601
RTPrintf("Primary master: %lS (UUID: %s)\n", filePath.raw(), Utf8Str(uuid).raw());
605
if (details == VMINFO_MACHINEREADABLE)
606
RTPrintf("hda=\"none\"\n");
608
rc = machine->GetHardDisk(Bstr("IDE"), 0, 1, hardDisk.asOutParam());
609
if (SUCCEEDED(rc) && hardDisk)
611
hardDisk->COMGETTER(Location)(filePath.asOutParam());
612
hardDisk->COMGETTER(Id)(uuid.asOutParam());
613
if (details == VMINFO_MACHINEREADABLE)
615
RTPrintf("hdb=\"%lS\"\n", filePath.raw());
616
RTPrintf("HdbImageUUID=\"%s\"\n", Utf8Str(uuid).raw());
619
RTPrintf("Primary slave: %lS (UUID: %s)\n", filePath.raw(), Utf8Str(uuid).raw());
623
if (details == VMINFO_MACHINEREADABLE)
624
RTPrintf("hdb=\"none\"\n");
626
rc = machine->GetHardDisk(Bstr("IDE"), 1, 1, hardDisk.asOutParam());
627
if (SUCCEEDED(rc) && hardDisk)
629
hardDisk->COMGETTER(Location)(filePath.asOutParam());
630
hardDisk->COMGETTER(Id)(uuid.asOutParam());
631
if (details == VMINFO_MACHINEREADABLE)
633
RTPrintf("hdd=\"%lS\"\n", filePath.raw());
634
RTPrintf("HddImageUUID=\"%s\"\n", Utf8Str(uuid).raw());
637
RTPrintf("Secondary slave: %lS (UUID: %s)\n", filePath.raw(), Utf8Str(uuid).raw());
641
if (details == VMINFO_MACHINEREADABLE)
642
RTPrintf("hdd=\"none\"\n");
644
ComPtr<IDVDDrive> dvdDrive;
645
rc = machine->COMGETTER(DVDDrive)(dvdDrive.asOutParam());
646
if (SUCCEEDED(rc) && dvdDrive)
648
ComPtr<IDVDImage> dvdImage;
649
rc = dvdDrive->GetImage(dvdImage.asOutParam());
650
if (SUCCEEDED(rc) && dvdImage)
652
rc = dvdImage->COMGETTER(Location)(filePath.asOutParam());
653
if (SUCCEEDED(rc) && filePath)
655
rc = dvdImage->COMGETTER(Id)(uuid.asOutParam());
656
if (details == VMINFO_MACHINEREADABLE)
658
RTPrintf("dvd=\"%lS\"\n", filePath.raw());
659
RTPrintf("DvdImageUUID=\"%s\"\n", Utf8Str(uuid).raw());
662
RTPrintf("DVD: %lS (UUID: %s)\n", filePath.raw(), Utf8Str(uuid).raw());
667
ComPtr<IHostDVDDrive> hostDVDDrive;
668
rc = dvdDrive->GetHostDrive(hostDVDDrive.asOutParam());
669
if (SUCCEEDED(rc) && hostDVDDrive)
672
hostDVDDrive->COMGETTER(Name)(name.asOutParam());
673
if (details == VMINFO_MACHINEREADABLE)
674
RTPrintf("dvd=\"host:%lS\"\n", name.raw());
676
RTPrintf("DVD: Host drive %lS", name.raw());
680
if (details == VMINFO_MACHINEREADABLE)
681
RTPrintf("dvd=\"none\"\n");
683
RTPrintf("DVD: empty");
686
dvdDrive->COMGETTER(Passthrough)(&fPassthrough);
687
if (details == VMINFO_MACHINEREADABLE)
689
RTPrintf("dvdpassthrough=\"%s\"\n", fPassthrough ? "on" : "off");
694
RTPrintf(" (passthrough enabled)");
605
if (details == VMINFO_MACHINEREADABLE)
606
RTPrintf("storagecontrollertype%u=\"%s\"\n", i, pszCtl);
608
RTPrintf("Storage Controller Type (%u): %s\n", i, pszCtl);
610
storageCtl->COMGETTER(Instance)(&ulValue);
611
if (details == VMINFO_MACHINEREADABLE)
612
RTPrintf("storagecontrollerinstance%u=\"%lu\"\n", i, ulValue);
614
RTPrintf("Storage Controller Instance Number (%u): %lu\n", i, ulValue);
616
storageCtl->COMGETTER(MaxPortCount)(&ulValue);
617
if (details == VMINFO_MACHINEREADABLE)
618
RTPrintf("storagecontrollermaxportcount%u=\"%lu\"\n", i, ulValue);
620
RTPrintf("Storage Controller Max Port Count (%u): %lu\n", i, ulValue);
622
storageCtl->COMGETTER(PortCount)(&ulValue);
623
if (details == VMINFO_MACHINEREADABLE)
624
RTPrintf("storagecontrollerportcount%u=\"%lu\"\n", i, ulValue);
626
RTPrintf("Storage Controller Port Count (%u): %lu\n", i, ulValue);
629
for (size_t j = 0; j < storageCtls.size(); ++ j)
631
ComPtr<IStorageController> storageCtl = storageCtls[j];
632
ComPtr<IMedium> medium;
638
storageCtl->COMGETTER(Name)(storageCtlName.asOutParam());
639
storageCtl->COMGETTER(MaxDevicesPerPortCount)(&cDevices);
640
storageCtl->COMGETTER(PortCount)(&cPorts);
642
for (ULONG i = 0; i < cPorts; ++ i)
644
for (ULONG k = 0; k < cDevices; ++ k)
646
rc = machine->GetMedium(storageCtlName, i, k, medium.asOutParam());
647
if (SUCCEEDED(rc) && medium)
650
ComPtr<IMediumAttachment> mediumAttach;
652
rc = machine->GetMediumAttachment(storageCtlName, i, k, mediumAttach.asOutParam());
653
if (SUCCEEDED(rc) && mediumAttach)
654
mediumAttach->COMGETTER(Passthrough)(&fPassthrough);
656
medium->COMGETTER(Location)(filePath.asOutParam());
657
medium->COMGETTER(Id)(uuid.asOutParam());
659
if (details == VMINFO_MACHINEREADABLE)
661
RTPrintf("\"%lS-%d-%d\"=\"%lS\"\n", storageCtlName.raw(),
662
i, k, filePath.raw());
663
RTPrintf("\"%lS-ImageUUID-%d-%d\"=\"%s\"\n",
664
storageCtlName.raw(), i, k, Utf8Str(uuid).raw());
666
RTPrintf("\"%lS-dvdpassthrough\"=\"%s\"\n", storageCtlName.raw(),
667
fPassthrough ? "on" : "off");
671
RTPrintf("%lS (%d, %d): %lS (UUID: %s)",
672
storageCtlName.raw(), i, k, filePath.raw(),
673
Utf8Str(uuid).raw());
675
RTPrintf(" (passthrough enabled)");
679
else if (SUCCEEDED(rc))
681
if (details == VMINFO_MACHINEREADABLE)
682
RTPrintf("\"%lS-%d-%d\"=\"emptydrive\"\n", storageCtlName.raw(), i, k);
684
RTPrintf("%lS (%d, %d): Empty\n", storageCtlName.raw(), i, k);
688
if (details == VMINFO_MACHINEREADABLE)
689
RTPrintf("\"%lS-%d-%d\"=\"none\"\n", storageCtlName.raw(), i, k);