VirtualBox

Changeset 38512 in vbox


Ignore:
Timestamp:
Aug 24, 2011 9:35:09 AM (13 years ago)
Author:
vboxsync
Message:

usb/win: avoid replugging/filtering netsed hubs (typically could occur for empty filters)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbFlt.cpp

    r38488 r38512  
    350350}
    351351
     352static bool vboxUsbFltDevCanBeCaptured(PVBOXUSBFLT_DEVICE pDevice)
     353{
     354    if (pDevice->bClass == USB_DEVICE_CLASS_HUB)
     355    {
     356        LOG(("device (0x%p), pdo (0x%p) is a hub, can not be captured", pDevice, pDevoce->Pdo));
     357        return false;
     358    }
     359    return true;
     360}
     361
    352362static PVBOXUSBFLTCTX vboxUsbFltDevMatchLocked(PVBOXUSBFLT_DEVICE pDevice, uintptr_t *puId, bool fRemoveFltIfOneShot, bool *pfFilter, bool *pfIsOneShot)
    353363{
     364    *puId = 0;
     365    *pfFilter = false;
     366    *pfIsOneShot = false;
     367    if (!vboxUsbFltDevCanBeCaptured(pDevice))
     368    {
     369        LOG(("vboxUsbFltDevCanBeCaptured returned false"));
     370        return NULL;
     371    }
     372
    354373    USBFILTER DevFlt;
    355374    USBFilterInit(&DevFlt, USBFILTERTYPE_CAPTURE);
     
    365384
    366385    /* Run filters on the thing. */
    367     *puId = 0;
    368     *pfFilter = false;
    369     *pfIsOneShot = false;
    370386    PVBOXUSBFLTCTX pOwner = VBoxUSBFilterMatchEx(&DevFlt, puId, fRemoveFltIfOneShot, pfFilter, pfIsOneShot);
    371387    USBFilterDelete(&DevFlt);
     
    767783    KIRQL Irql = KeGetCurrentIrql();
    768784    ASSERT_WARN(Irql == PASSIVE_LEVEL, ("unexpected IRQL (%d)", Irql));
    769 
    770 
    771785
    772786    PDEVICE_RELATIONS pDevRelations = NULL;
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