- Timestamp:
- Sep 18, 2019 11:22:57 AM (5 years ago)
- Location:
- trunk/src/VBox/HostServices/SharedClipboard
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-transfers.cpp
r80866 r80883 1239 1239 * transfer client (guest) handler for the Shared Clipboard host service. 1240 1240 * 1241 * @returns VBox status code .1241 * @returns VBox status code, or VINF_HGCM_ASYNC_EXECUTE if returning to the client will be deferred. 1242 1242 * @param pClient Pointer to associated client. 1243 1243 * @param callHandle The client's call handle of this call. … … 1248 1248 */ 1249 1249 int sharedClipboardSvcTransferHandler(PSHCLCLIENT pClient, 1250 VBOXHGCMCALLHANDLE callHandle,1251 uint32_t u32Function,1252 uint32_t cParms,1253 VBOXHGCMSVCPARM paParms[],1254 uint64_t tsArrival)1255 { 1256 RT_NOREF( paParms, tsArrival);1250 VBOXHGCMCALLHANDLE callHandle, 1251 uint32_t u32Function, 1252 uint32_t cParms, 1253 VBOXHGCMSVCPARM paParms[], 1254 uint64_t tsArrival) 1255 { 1256 RT_NOREF(callHandle, paParms, tsArrival); 1257 1257 1258 1258 LogFlowFunc(("uClient=%RU32, u32Function=%RU32 (%s), cParms=%RU32, g_ExtState.pfnExtension=%p\n", … … 1284 1284 * Pre-check: For certain messages we need to make sure that a (right) transfer is present. 1285 1285 */ 1286 uint32_t 1286 uint32_t uCID = 0; /* Context ID */ 1287 1287 PSHCLTRANSFER pTransfer = NULL; 1288 1288 … … 1323 1323 1324 1324 rc = VERR_INVALID_PARAMETER; /* Play safe. */ 1325 1326 bool fDoCallComplete = true;1327 1325 1328 1326 switch (u32Function) … … 1432 1430 { 1433 1431 rc = sharedClipboardSvcTransferHandleReply(pClient, pTransfer, cParms, paParms); 1434 1435 /* This message does not need any completion, as it can happen at any time from the guest side. */1436 fDoCallComplete = false;1437 1432 break; 1438 1433 } … … 1858 1853 LogFunc(("Not implemented\n")); 1859 1854 break; 1860 }1861 1862 if (fDoCallComplete)1863 {1864 /* Tell the client that the call is complete (unblocks waiting). */1865 LogFlowFunc(("[Client %RU32] Calling pfnCallComplete w/ rc=%Rrc\n", pClient->State.uClientID, rc));1866 AssertPtr(g_pHelpers);1867 g_pHelpers->pfnCallComplete(callHandle, rc);1868 1855 } 1869 1856 -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc.cpp
r80866 r80883 1201 1201 #endif 1202 1202 1203 bool fDoCallComplete = true;1204 1205 1203 switch (u32Function) 1206 1204 { … … 1208 1206 { 1209 1207 rc = sharedClipboardSvcMsgGetOld(pClient, callHandle, cParms, paParms); 1210 if (rc == VINF_HGCM_ASYNC_EXECUTE)1211 fDoCallComplete = false;1212 1208 break; 1213 1209 } … … 1259 1255 { 1260 1256 rc = sharedClipboardSvcMsgPeek(pClient, callHandle, cParms, paParms, true /*fWait*/); 1261 if (rc == VINF_HGCM_ASYNC_EXECUTE)1262 fDoCallComplete = false;1263 1257 break; 1264 1258 } … … 1267 1261 { 1268 1262 rc = sharedClipboardSvcMsgGet(pClient, callHandle, cParms, paParms); 1269 if (rc == VINF_HGCM_ASYNC_EXECUTE)1270 fDoCallComplete = false;1271 1263 break; 1272 1264 } … … 1484 1476 } 1485 1477 1486 LogFlowFunc((" u32ClientID=%RU32, fDoCallComplete=%RTbool, rc=%Rrc\n", pClient->State.uClientID, fDoCallComplete, rc));1487 1488 if ( fDoCallComplete)1478 LogFlowFunc(("[Client %RU32] rc=%Rrc\n", pClient->State.uClientID, rc)); 1479 1480 if (rc != VINF_HGCM_ASYNC_EXECUTE) 1489 1481 g_pHelpers->pfnCallComplete(callHandle, rc); 1490 1491 LogFlowFuncLeaveRC(rc);1492 1482 } 1493 1483
Note:
See TracChangeset
for help on using the changeset viewer.