VirtualBox

Ignore:
Timestamp:
May 11, 2011 2:57:23 PM (14 years ago)
Author:
vboxsync
Message:

usb: fix issue with uncompleting IRP on device enumeration

File:
1 edited

Legend:

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

    r36999 r37038  
    667667                            for (ULONG k = 0; k < pDevRelations->Count; ++k)
    668668                            {
    669                                 Log(("Found existing USB PDO %p\n", pDevRelations->Objects[k]));
     669                                PDEVICE_OBJECT pDevObj = pDevRelations->Objects[k];
     670                                if (!pDevObj->DriverObject
     671                                        || !pDevObj->DriverObject->DriverName.Buffer
     672                                        || !pDevObj->DriverObject->DriverName.Length)
     673                                {
     674                                    AssertFailed();
     675                                    continue;
     676                                }
     677
     678                                bool fIsHub = false;
     679                                for (int z = 0; z < RT_ELEMENTS(lpszStandardControllerName); ++z)
     680                                {
     681                                    if (!RtlCompareUnicodeString(&szStandardControllerName[z], &pDevObj->DriverObject->DriverName, TRUE /* case insensitive */))
     682                                    {
     683                                        fIsHub = true;
     684                                        break;
     685                                    }
     686                                }
     687
     688                                if (fIsHub)
     689                                {
     690                                    Log(("Found sub-hub, PDO 0x%p\n", pDevObj));
     691                                    continue;
     692                                }
     693
     694                                Log(("Found existing USB PDO 0x%p\n", pDevObj));
    670695                                VBOXUSBFLT_LOCK_ACQUIRE();
    671                                 PVBOXUSBFLT_DEVICE pDevice = vboxUsbFltDevGetLocked(pDevRelations->Objects[k]);
     696                                PVBOXUSBFLT_DEVICE pDevice = vboxUsbFltDevGetLocked(pDevObj);
    672697                                if (pDevice)
    673698                                {
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