Changeset 94342 in vbox for trunk/src/VBox/Devices/USB/vrdp/USBProxyDevice-vrdp.cpp
- Timestamp:
- Mar 23, 2022 7:53:21 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/USB/vrdp/USBProxyDevice-vrdp.cpp
r93115 r94342 26 26 #include <iprt/alloc.h> 27 27 #include <iprt/string.h> 28 #include <iprt/uuid.h> 28 29 29 30 #include "../USBProxyDevice.h" … … 43 44 */ 44 45 45 static DECLCALLBACK(int) usbProxyVrdpOpen(PUSBPROXYDEV pProxyDev, const char *pszAddress, void *pvBackend) 46 { 47 LogFlow(("usbProxyVrdpOpen: pProxyDev=%p pszAddress=%s, pvBackend=%p\n", pProxyDev, pszAddress, pvBackend)); 48 49 PUSBPROXYDEVVRDP pDevVrdp = USBPROXYDEV_2_DATA(pProxyDev, PUSBPROXYDEVVRDP); 50 int rc = VINF_SUCCESS; 46 static DECLCALLBACK(int) usbProxyVrdpOpen(PUSBPROXYDEV pProxyDev, const char *pszAddress) 47 { 48 LogFlow(("usbProxyVrdpOpen: pProxyDev=%p pszAddress=%s\n", pProxyDev, pszAddress)); 49 50 PUSBPROXYDEVVRDP pDevVrdp = USBPROXYDEV_2_DATA(pProxyDev, PUSBPROXYDEVVRDP); 51 PPDMUSBINS pUsbIns = pProxyDev->pUsbIns; 52 PCPDMUSBHLP pHlp = pUsbIns->pHlpR3; 53 54 PCFGMNODE pCfgBackend = pHlp->pfnCFGMGetChild(pUsbIns->pCfg, "BackendCfg"); 55 AssertPtrReturn(pCfgBackend, VERR_NOT_FOUND); 56 57 uint32_t idClient = 0; 58 int rc = pHlp->pfnCFGMQueryU32(pCfgBackend, "ClientId", &idClient); 59 AssertRCReturn(rc, rc); 60 61 RTUUID UuidDev; 62 char *pszUuid = NULL; 63 64 rc = pHlp->pfnCFGMQueryStringAlloc(pUsbIns->pCfg, "UUID", &pszUuid); 65 AssertRCReturn(rc, rc); 66 67 rc = RTUuidFromStr(&UuidDev, pszUuid); 68 pHlp->pfnMMHeapFree(pUsbIns, pszUuid); 69 AssertMsgRCReturn(rc, ("Failed to convert UUID from string! rc=%Rrc\n", rc), rc); 51 70 52 71 if (strncmp (pszAddress, REMOTE_USB_BACKEND_PREFIX_S, REMOTE_USB_BACKEND_PREFIX_LEN) == 0) 53 72 { 54 REMOTEUSBCALLBACK *pCallback = (REMOTEUSBCALLBACK *)pvBackend; 73 RTUUID UuidRemoteUsbIf; 74 rc = RTUuidFromStr(&UuidRemoteUsbIf, REMOTEUSBIF_OID); AssertRC(rc); 75 76 PREMOTEUSBIF pRemoteUsbIf = (PREMOTEUSBIF)PDMUsbHlpQueryGenericUserObject(pUsbIns, &UuidRemoteUsbIf); 77 AssertPtrReturn(pRemoteUsbIf, VERR_INVALID_PARAMETER); 78 79 REMOTEUSBCALLBACK *pCallback = pRemoteUsbIf->pfnQueryRemoteUsbBackend(pRemoteUsbIf->pvUser, &UuidDev, idClient); 80 AssertPtrReturn(pCallback, VERR_INVALID_PARAMETER); 81 55 82 PREMOTEUSBDEVICE pDevice = NULL; 56 57 rc = pCallback->pfnOpen (pCallback->pInstance, pszAddress, strlen (pszAddress) + 1, &pDevice); 58 59 if (RT_SUCCESS (rc)) 83 rc = pCallback->pfnOpen(pCallback->pInstance, pszAddress, strlen (pszAddress) + 1, &pDevice); 84 if (RT_SUCCESS(rc)) 60 85 { 61 86 pDevVrdp->pCallback = pCallback;
Note:
See TracChangeset
for help on using the changeset viewer.