<div class="gmail_quote">I've been troubleshooting an issue that prevents vbox from capturing USB devices when other specific USB devices are plugged in (i.e. Sprint USB crap). I finally managed to track down the problem to IoGetDeviceObjectPointer in VboxUsbMonHubDevWalk. IoGetDeviceObjectPointer was getting called, however, it never returned.<div>


<br></div><div>I'm not an expert in windows driver development so I'd like to run things by you before I start fixing it.</div><div><br></div><div>Firstly, I'm not really sure why it hangs (deadlocks?) there for some devices and not others. However, I believe that it may be due to the fact that some driver interfaces cause blocking PnP events. Due to that, vboxusbmon runs into a deadlock when executing IoGetDeviceObjectPointer because it is being used directly from a callback function, VBoxUsbMonDeviceControl, and IRQL==PASSIVE_LEVEL.<br>


<div><div><br></div><div>What led me to that conclusion is that right after IoGetDeviceObjectPointer is executed, I start seeing lots of PnP events.</div><div><div>USBMon::vboxUsbMonHubDevWalk:   </div><div>IoGetDeviceObjectPointer - Starting     </div>


<div><br></div><div>USBMon::VBoxUsbMonPnPHook:      </div><div>VBoxUsbMonPnPHook In    </div><div><br></div><div>USBMon::VBoxUsbMonPnPHook:      </div><div>==>PnP: Mn(IRP_MN_QUERY_DEVICE_RELATIONS), PDO(0x8833d028), IRP(0x882a71a8), Status(0xc00000bb) </div>


<div><br></div><div>See attached for complete debug view.</div><div><br></div><div>Are my assumptions correct? If so how would you go about fixing the problem.<br></div></div><div><br></div><div>Thanks!</div></div></div>

</div><div><br></div>-- <br>-- Ribhi<br>