485
487
* We might have already entered Session::uninit() at this point,
486
488
* return silently
488
LogFlowThisFunc (("Already uninitialized.\n"));
490
LogFlowThisFunc(("Already uninitialized.\n"));
492
LogWarningThisFunc (("UNEXPECTED uninitialization!\n"));
494
LogWarningThisFunc(("UNEXPECTED uninitialization!\n"));
493
495
rc = autoCaller.rc();
496
LogFlowThisFunc (("rc=%08X\n", rc));
498
LogFlowThisFunc(("rc=%08X\n", rc));
497
499
LogFlowThisFuncLeave();
502
STDMETHODIMP Session::OnDVDDriveChange()
504
LogFlowThisFunc (("\n"));
506
AutoCaller autoCaller (this);
507
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
509
AutoReadLock alock (this);
510
AssertReturn (mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
511
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
513
return mConsole->onDVDDriveChange();
516
STDMETHODIMP Session::OnFloppyDriveChange()
518
LogFlowThisFunc (("\n"));
520
AutoCaller autoCaller (this);
521
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
523
AutoReadLock alock (this);
524
AssertReturn (mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
525
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
527
return mConsole->onFloppyDriveChange();
530
STDMETHODIMP Session::OnNetworkAdapterChange(INetworkAdapter *networkAdapter)
532
LogFlowThisFunc (("\n"));
534
AutoCaller autoCaller (this);
535
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
537
AutoReadLock alock (this);
538
AssertReturn (mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
539
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
541
return mConsole->onNetworkAdapterChange(networkAdapter);
504
STDMETHODIMP Session::OnNetworkAdapterChange(INetworkAdapter *networkAdapter, BOOL changeAdapter)
506
LogFlowThisFunc(("\n"));
508
AutoCaller autoCaller(this);
509
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
511
AutoReadLock alock(this);
512
AssertReturn(mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
513
AssertReturn(mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
515
return mConsole->onNetworkAdapterChange(networkAdapter, changeAdapter);
544
518
STDMETHODIMP Session::OnSerialPortChange(ISerialPort *serialPort)
546
LogFlowThisFunc (("\n"));
520
LogFlowThisFunc(("\n"));
548
AutoCaller autoCaller (this);
522
AutoCaller autoCaller(this);
549
523
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
551
AutoReadLock alock (this);
552
AssertReturn (mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
553
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
525
AutoReadLock alock(this);
526
AssertReturn(mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
527
AssertReturn(mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
555
529
return mConsole->onSerialPortChange(serialPort);
558
532
STDMETHODIMP Session::OnParallelPortChange(IParallelPort *parallelPort)
560
LogFlowThisFunc (("\n"));
534
LogFlowThisFunc(("\n"));
562
AutoCaller autoCaller (this);
536
AutoCaller autoCaller(this);
563
537
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
565
AutoReadLock alock (this);
566
AssertReturn (mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
567
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
539
AutoReadLock alock(this);
540
AssertReturn(mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
541
AssertReturn(mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
569
543
return mConsole->onParallelPortChange(parallelPort);
572
546
STDMETHODIMP Session::OnStorageControllerChange()
574
LogFlowThisFunc (("\n"));
548
LogFlowThisFunc(("\n"));
576
AutoCaller autoCaller (this);
550
AutoCaller autoCaller(this);
577
551
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
579
AutoReadLock alock (this);
580
AssertReturn (mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
581
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
553
AutoReadLock alock(this);
554
AssertReturn(mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
555
AssertReturn(mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
583
557
return mConsole->onStorageControllerChange();
560
STDMETHODIMP Session::OnMediumChange(IMediumAttachment *aMediumAttachment, BOOL aForce)
562
LogFlowThisFunc(("\n"));
564
AutoCaller autoCaller(this);
565
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
567
AutoReadLock alock(this);
568
AssertReturn(mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
569
AssertReturn(mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
571
return mConsole->onMediumChange(aMediumAttachment, aForce);
586
574
STDMETHODIMP Session::OnVRDPServerChange()
588
LogFlowThisFunc (("\n"));
576
LogFlowThisFunc(("\n"));
590
AutoCaller autoCaller (this);
578
AutoCaller autoCaller(this);
591
579
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
593
AutoReadLock alock (this);
594
AssertReturn (mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
595
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
581
AutoReadLock alock(this);
582
AssertReturn(mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
583
AssertReturn(mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
597
585
return mConsole->onVRDPServerChange();
600
588
STDMETHODIMP Session::OnUSBControllerChange()
602
LogFlowThisFunc (("\n"));
590
LogFlowThisFunc(("\n"));
604
AutoCaller autoCaller (this);
592
AutoCaller autoCaller(this);
605
593
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
607
AutoReadLock alock (this);
608
AssertReturn (mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
609
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
595
AutoReadLock alock(this);
596
AssertReturn(mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
597
AssertReturn(mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
611
599
return mConsole->onUSBControllerChange();
614
602
STDMETHODIMP Session::OnSharedFolderChange (BOOL aGlobal)
616
LogFlowThisFunc (("\n"));
604
LogFlowThisFunc(("\n"));
618
AutoCaller autoCaller (this);
606
AutoCaller autoCaller(this);
619
607
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
621
AutoReadLock alock (this);
622
AssertReturn (mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
623
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
609
AutoReadLock alock(this);
610
AssertReturn(mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
611
AssertReturn(mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
625
613
return mConsole->onSharedFolderChange (aGlobal);
644
632
STDMETHODIMP Session::OnUSBDeviceDetach (IN_BSTR aId,
645
633
IVirtualBoxErrorInfo *aError)
647
LogFlowThisFunc (("\n"));
635
LogFlowThisFunc(("\n"));
649
AutoCaller autoCaller (this);
637
AutoCaller autoCaller(this);
650
638
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
652
AutoReadLock alock (this);
653
AssertReturn (mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
654
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
640
AutoReadLock alock(this);
641
AssertReturn(mState == SessionState_Open, VBOX_E_INVALID_VM_STATE);
642
AssertReturn(mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
656
644
return mConsole->onUSBDeviceDetach (aId, aError);
659
647
STDMETHODIMP Session::OnShowWindow (BOOL aCheck, BOOL *aCanShow, ULONG64 *aWinId)
661
AutoCaller autoCaller (this);
649
AutoCaller autoCaller(this);
662
650
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
664
AutoReadLock alock (this);
652
AutoReadLock alock(this);
666
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
654
AssertReturn(mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
668
656
if (mState != SessionState_Open)
720
708
ComSafeArrayOut(BSTR, aFlags))
722
710
#ifdef VBOX_WITH_GUEST_PROPS
723
AutoCaller autoCaller (this);
711
AutoCaller autoCaller(this);
724
712
AssertComRCReturn (autoCaller.rc(), autoCaller.rc());
726
714
if (mState != SessionState_Open)
727
715
return setError (VBOX_E_INVALID_VM_STATE,
728
tr ("Machine session is not open (session state: %d)."),
730
AssertReturn (mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
716
tr ("Machine session is not open (session state: %s)."),
717
Global::stringifySessionState(mState));
718
AssertReturn(mType == SessionType_Direct, VBOX_E_INVALID_OBJECT_STATE);
731
719
if (!VALID_PTR (aPatterns) && (aPatterns != NULL))
732
720
return E_POINTER;
733
if (ComSafeArrayOutIsNull (aNames))
735
if (ComSafeArrayOutIsNull (aValues))
737
if (ComSafeArrayOutIsNull (aTimestamps))
739
if (ComSafeArrayOutIsNull (aFlags))
721
if (ComSafeArrayOutIsNull(aNames))
723
if (ComSafeArrayOutIsNull(aValues))
725
if (ComSafeArrayOutIsNull(aTimestamps))
727
if (ComSafeArrayOutIsNull(aFlags))
740
728
return E_POINTER;
741
729
return mConsole->enumerateGuestProperties(aPatterns,
742
730
ComSafeArrayOutArg(aNames),