USBProxyServiceWindows.cpp revision b52c24239bed9dc9f284d829b6059073afcb1894
1N/A * VirtualBox USB Proxy Service, Windows Specialization. 1N/A * Copyright (C) 2006-2010 Oracle Corporation 1N/A * This file is part of VirtualBox Open Source Edition (OSE), as 1N/A * you can redistribute it and/or modify it under the terms of the GNU 1N/A * General Public License (GPL) as published by the Free Software 1N/A * Foundation, in version 2 as it comes in the "COPYING" file of the 1N/A * VirtualBox OSE distribution. VirtualBox OSE is distributed in the 1N/A * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 1N/A/******************************************************************************* 1N/A*******************************************************************************/ 1N/A * Initialize data members. 1N/A * Initializes the object (called right after construction). 1N/A * @returns S_OK on success and non-fatal failures, some COM error otherwise. 1N/A * Call the superclass method first. 1N/A * Create the semaphore (considered fatal). 1N/A * Initalize the USB lib and stuff. 1N/A * Start the poller thread. 1N/A * Stop all service threads and free the device chain. 1N/A * Terminate the library... 1N/A LogFlow((
"USBProxyServiceWindows::insertFilter()\n"));
1N/A LogFlow((
"USBProxyServiceWindows::insertFilter(): returning pvId=%p\n",
pvId));
1N/A LogFlow((
"USBProxyServiceWindows::removeFilter(): id=%p\n",
aID));
1N/A/** @todo pass up a one-shot filter like on darwin? */ 1N/A/** @todo pass up a one-shot filter like on darwin? */ 1N/A Log((
"USBProxyServiceWindows::releaseDevice\n"));
1N/A /* Nothing special here so far, so fall back on parent */ 1N/A * We're only called in the 'existing device' state, so if there is a pending async 1N/A * operation we can check if it completed here and suppress state changes if it hasn't. 1N/A /* fall back on parent. */ 1N/A /* Not going to do something fancy where we block in the filter 1N/A * driver and are woken up when the state has changed. 1N/A * Would be better, but this is good enough. /** @todo handle WAIT_FAILED here */ Log((
"wait thread detected usb change\n"));
* Gets a list of all devices the VM can grab Log((
"USBProxyServiceWindows::getDevices\n"));