Changeset 100411 in vbox
- Timestamp:
- Jul 6, 2023 2:07:46 PM (20 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-transfers.cpp
r100404 r100411 61 61 * Prototypes * 62 62 *********************************************************************************************************************************/ 63 static int shClSvcTransferSendStatusAsync Internal(PSHCLCLIENT pClient, PSHCLTRANSFER pTransfer, SHCLTRANSFERSTATUS uStatus, int rcTransfer, PSHCLEVENT *ppEvent);63 static int shClSvcTransferSendStatusAsync(PSHCLCLIENT pClient, PSHCLTRANSFER pTransfer, SHCLTRANSFERSTATUS uStatus, int rcTransfer, PSHCLEVENT *ppEvent); 64 64 static int shClSvcTransferSetListOpen(uint32_t cParms, VBOXHGCMSVCPARM aParms[], uint64_t idCtx, PSHCLLISTOPENPARMS pOpenParms); 65 65 static int shClSvcTransferSetListClose(uint32_t cParms, VBOXHGCMSVCPARM aParms[], uint64_t idCtx, SHCLLISTHANDLE hList); … … 1426 1426 shClSvcClientLock(pClient); 1427 1427 1428 rc = shClSvcTransferSendStatusAsync Internal(pClient, pTransfer,1429 1430 1428 rc = shClSvcTransferSendStatusAsync(pClient, pTransfer, 1429 SHCLTRANSFERSTATUS_REQUESTED, VINF_SUCCESS, 1430 NULL); 1431 1431 shClSvcClientUnlock(pClient); 1432 1432 } … … 2036 2036 2037 2037 /* Let the guest know. */ 2038 int rc2 = shClSvcTransferSendStatusAsync Internal(pClient, pTransfer,2039 2038 int rc2 = shClSvcTransferSendStatusAsync(pClient, pTransfer, 2039 SHCLTRANSFERSTATUS_ERROR, rc, NULL /* ppEvent */); 2040 2040 AssertRC(rc2); 2041 2041 … … 2120 2120 /* ppEvent is optional. */ 2121 2121 2122 Assert(RTCritSectIsOwner(&pClient->CritSect)); 2123 2122 2124 PSHCLCLIENTMSG pMsgReadData = shClSvcMsgAlloc(pClient, VBOX_SHCL_HOST_MSG_TRANSFER_STATUS, 2123 2125 VBOX_SHCL_CPARMS_TRANSFER_STATUS); … … 2165 2167 2166 2168 /** 2167 * Reports a transfer status to the guest .2169 * Reports a transfer status to the guest, internal version. 2168 2170 * 2169 2171 * @returns VBox status code. … … 2177 2179 * @note Caller must enter the client's critical section. 2178 2180 */ 2179 static int shClSvcTransferSendStatusAsync Internal(PSHCLCLIENT pClient, PSHCLTRANSFER pTransfer, SHCLTRANSFERSTATUS uStatus,2180 2181 static int shClSvcTransferSendStatusAsync(PSHCLCLIENT pClient, PSHCLTRANSFER pTransfer, SHCLTRANSFERSTATUS uStatus, 2182 int rcTransfer, PSHCLEVENT *ppEvent) 2181 2183 { 2182 2184 AssertPtrReturn(pClient, VERR_INVALID_POINTER); … … 2188 2190 } 2189 2191 2192 /** 2193 * Reports a transfer status to the guest. 2194 * 2195 * @returns VBox status code. 2196 * @param pClient Client that owns the transfer. 2197 * @param pTransfer Transfer to report status for. 2198 * @param uStatus Status to report. 2199 * @param rcTransfer Result code to report. Optional and depending on status. 2200 * @param ppEvent Where to return the wait event on success. Optional. 2201 * Must be released by the caller with ShClEventRelease(). 2202 */ 2190 2203 int ShClSvcTransferSendStatusAsync(PSHCLCLIENT pClient, PSHCLTRANSFER pTransfer, SHCLTRANSFERSTATUS uStatus, 2191 2204 int rcTransfer, PSHCLEVENT *ppEvent) 2192 2205 { 2193 shClSvcClientLock(pClient); 2194 2195 int rc = shClSvcTransferSendStatusAsyncInternal(pClient, pTransfer, uStatus, rcTransfer, ppEvent); 2196 2197 shClSvcClientUnlock(pClient); 2198 2199 return rc; 2206 return shClSvcTransferSendStatusAsync(pClient, pTransfer, uStatus, rcTransfer, ppEvent); 2200 2207 } 2201 2208 … … 2222 2229 { 2223 2230 /* Let the guest know. */ 2224 int rc2 = shClSvcTransferSendStatusAsync Internal(pClient, pTransfer,2225 2231 int rc2 = shClSvcTransferSendStatusAsync(pClient, pTransfer, 2232 SHCLTRANSFERSTATUS_UNINITIALIZED, VINF_SUCCESS, NULL /* ppEvent */); 2226 2233 AssertRC(rc2); 2227 2234 … … 2358 2365 2359 2366 /* Tell the guest the outcome. */ 2360 int rc2 = shClSvcTransferSendStatusAsync Internal(pClient, pTransfer,2361 2362 2363 2367 int rc2 = shClSvcTransferSendStatusAsync(pClient, pTransfer, 2368 RT_SUCCESS(rc) 2369 ? SHCLTRANSFERSTATUS_INITIALIZED : SHCLTRANSFERSTATUS_ERROR, rc, 2370 NULL /* ppEvent */); 2364 2371 if (RT_SUCCESS(rc)) 2365 2372 rc2 = rc; … … 2391 2398 /* Let the guest know in any case 2392 2399 * (so that it can tear down the transfer on error as well). */ 2393 int rc2 = shClSvcTransferSendStatusAsyncInternal(pClient, pTransfer, 2394 RT_SUCCESS(rc) ? SHCLTRANSFERSTATUS_STARTED : SHCLTRANSFERSTATUS_ERROR, rc, 2395 NULL /* ppEvent */); 2400 int rc2 = shClSvcTransferSendStatusAsync(pClient, pTransfer, 2401 RT_SUCCESS(rc) 2402 ? SHCLTRANSFERSTATUS_STARTED : SHCLTRANSFERSTATUS_ERROR, rc, 2403 NULL /* ppEvent */); 2396 2404 if (RT_SUCCESS(rc)) 2397 2405 rc = rc2; … … 2416 2424 2417 2425 PSHCLEVENT pEvent; 2418 int rc = shClSvcTransferSendStatusAsync Internal(pClient, pTransfer,2419 2426 int rc = shClSvcTransferSendStatusAsync(pClient, pTransfer, 2427 SHCLTRANSFERSTATUS_STOPPED, VINF_SUCCESS, &pEvent); 2420 2428 if ( RT_SUCCESS(rc) 2421 2429 && fWaitForGuest)
Note:
See TracChangeset
for help on using the changeset viewer.