VirtualBox

Changeset 64306 in vbox for trunk/src


Ignore:
Timestamp:
Oct 17, 2016 5:13:48 PM (8 years ago)
Author:
vboxsync
Message:

vgdrvNtCleanup: Added @todo about nasty misbehavior if the driver is restarted like when CPUs are hotplugged.

Location:
trunk/src/VBox/Additions
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Installer/VBoxDrvInst.cpp

    r64227 r64306  
    383383            if (SUCCEEDED(hr))
    384384            {
    385                 _tprintf(_T("Driver was installed successfully!\n"));
     385                _tprintf(_T("Driver was %sinstalled successfully!\n"), fInstall ? _T("") : _T("un"));
    386386                if (fReboot)
    387                     _tprintf(_T("A reboot is needed to complete the driver (un)installation!\n"));
     387                    _tprintf(_T("A reboot is needed to complete the driver %sinstallation!\n"), fInstall ? _T("") : _T("un"));
    388388            }
    389389        }
  • trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp

    r63065 r64306  
    274274                 * so continue to init our own things.
    275275                 */
    276 #ifdef VBOX_WITH_GUEST_BUGCHECK_DETECTION
     276# ifdef VBOX_WITH_GUEST_BUGCHECK_DETECTION
    277277                vgdrvNtBugCheckCallback(pDevExt); /* Ignore failure! */
    278 #endif
     278# endif
    279279                if (NT_SUCCESS(rc))
    280280                {
     
    309309    return rc;
    310310}
    311 #endif /* TARGET_NT4 */
     311#endif /* !TARGET_NT4 */
    312312
    313313
     
    383383#ifndef TARGET_NT4
    384384    PIO_STACK_LOCATION  pStack  = IoGetCurrentIrpStackLocation(pIrp);
    385 #endif
    386 
    387     LogFlowFuncEnter();
     385    LogFlowFunc(("ENTER: pDevObj=%p pIrp=%p\n", pDevObj, pIrp));
     386#else
     387    LogFlowFunc(("ENTER: pDrvObj=%p pDevObj=%p pRegPath=%p\n", pDrvObj, pDevObj, pRegPath));
     388#endif
    388389
    389390    NTSTATUS rcNt;
     
    464465         * Register DPC and ISR.
    465466         */
    466         LogFlowFunc(("Initializing DPC/ISR ...\n"));
     467        LogFlowFunc(("Initializing DPC/ISR (pDevObj=%p)...\n", pDevExt->pDeviceObject));
    467468
    468469        IoInitializeDpcRequest(pDevExt->pDeviceObject, vgdrvNtDpcHandler);
     
    493494        if (pDevExt->interruptVector)
    494495        {
    495             LogFlowFunc(("Connecting interrupt ...\n"));
     496#ifdef TARGET_NT4
     497            LogFlowFunc(("Connecting interrupt (IntVector=%#u), IrqLevel=%u) ...\n", uInterruptVector, irqLevel));
     498#else
     499            LogFlowFunc(("Connecting interrupt (IntVector=%#u), IrqLevel=%u) ...\n", pDevExt->interruptVector, pDevExt->interruptLevel));
     500#endif
    496501
    497502            rcNt = IoConnectInterrupt(&pDevExt->pInterruptObject,                 /* Out: interrupt object. */
     
    513518                                      FALSE);                                     /* Don't save FPU stack. */
    514519            if (NT_ERROR(rcNt))
    515                 LogFunc(("Could not connect interrupt, rcNt=%#x\n", rcNt));
     520                LogFunc(("Could not connect interrupt: rcNt=%#x!\n", rcNt));
    516521        }
    517522        else
     
    559564 * Cleans up hardware resources.
    560565 * Do not delete DevExt here.
     566 *
     567 * @todo r=bird: HC SVNT DRACONES!
     568 *
     569 *       This code leaves clients hung when vgdrvNtInit is called afterwards.
     570 *       This happens when for instance hotplugging a CPU.  Problem is
     571 *       vgdrvNtInit doing a full VGDrvCommonInitDevExt, orphaning all pDevExt
     572 *       members, like session lists and stuff.
    561573 *
    562574 * @param   pDevObj     Device object.
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette