vbox的更動 28013 路徑 trunk/src/VBox/HostServices/GuestControl
- 時間撮記:
- 2010-4-6 下午02:54:26 (15 年 以前)
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/HostServices/GuestControl/service.cpp
r28008 r28013 340 340 int Service::execBufferAssign(PVBOXGUESTCTRPARAMBUFFER pBuf, uint32_t cParms, VBOXHGCMSVCPARM paParms[]) 341 341 { 342 execBufferFree(pBuf);343 344 342 RTCritSectEnter(&critsect); 345 343 … … 476 474 rc = VINF_HGCM_ASYNC_EXECUTE; 477 475 478 if (RT_SUCCESS(rc)) 476 if ( RT_SUCCESS(rc) 477 && rc != VINF_HGCM_ASYNC_EXECUTE) 479 478 { 480 479 /* … … 487 486 { 488 487 if (it->uAssignedToClientID == 0) 488 { 489 489 bFound = true; 490 break; 491 } 490 492 } 491 493 if (!bFound) /* No new command found, defer ... */ … … 495 497 * Okay we got a host command which is unassigned at the moment. 496 498 */ 497 if (RT_SUCCESS(rc)) 499 if ( RT_SUCCESS(rc) 500 && rc != VINF_HGCM_ASYNC_EXECUTE) 498 501 { 499 502 /* … … 502 505 * below. Then we just could repeat this one here. 503 506 */ 504 uint32_t uCmd = 0; 505 if (it->parmBuf.uParmCount) 507 uint32_t uCmd = 1; /** @todo HARDCODED FOR EXEC! */ 508 uint32_t uParmCount = it->parmBuf.uParmCount; 509 if (uParmCount) 506 510 it->parmBuf.pParms[0].getUInt32(&uCmd); 507 511 paParms[0].setUInt32(uCmd); /* msg id */ 508 paParms[1].setUInt32( it->parmBuf.uParmCount); /* parms count */512 paParms[1].setUInt32(uParmCount); /* parms count */ 509 513 510 514 /* Assign this command to the specific client ID. */ … … 529 533 !bFound && it != mHostCmds.end(); ++it) 530 534 { 531 if (it->uAssignedToClientID == u32ClientID) 535 if (it->uAssignedToClientID == u32ClientID) 536 { 532 537 bFound = true; 538 break; 539 } 533 540 } 534 541 Assert(bFound); … … 542 549 * Finally remove the command from the list. 543 550 */ 551 execBufferFree(&it->parmBuf); 544 552 mHostCmds.erase(it); 545 553 } … … 584 592 { 585 593 int rc = VINF_SUCCESS; 594 595 ASMBreakpoint(); 586 596 587 597 LogFlowFunc(("fn = %d, cParms = %d, pparms = %d\n",
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器