VirtualBox

Ignore:
Timestamp:
Apr 12, 2010 3:58:07 PM (15 years ago)
Author:
vboxsync
Message:

Guest Control: Update (HGCM low level callbacks, bugfixes).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestCtrl.cpp

    r28086 r28218  
    117117    Msg.hdr.u32ClientID = u32ClientId;
    118118    Msg.hdr.u32Function = GUEST_GET_HOST_MSG; /* Tell the host we want our next command. */
    119     Msg.hdr.cParms = 2;
     119    Msg.hdr.cParms = 2;                       /* Just peek for the next message! */
    120120
    121121    VbglHGCMParmUInt32Set(&Msg.msg, 0);
     
    145145 * @param   ppvData
    146146 * @param   uNumParms
    147  */
    148 VBGLR3DECL(int) VbglR3GuestCtrlGetHostCmdExec(uint32_t u32ClientId, uint32_t uNumParms,
     147 ** @todo Docs!
     148 */
     149VBGLR3DECL(int) VbglR3GuestCtrlExecGetHostCmd(uint32_t u32ClientId, uint32_t uNumParms,
    149150                                              char    *pszCmd,      uint32_t cbCmd,
    150151                                              uint32_t *puFlags,
     
    214215}
    215216
     217
     218
     219
     220/**
     221 * Reports the process status (along with some other stuff) to the host.
     222 *
     223 * @returns VBox status code.
     224 ** @todo Docs!
     225 */
     226VBGLR3DECL(int) VbglR3GuestCtrlExecReportStatus(uint32_t  u32ClientId,
     227                                                uint32_t  u32PID,
     228                                                uint32_t  u32Status,
     229                                                uint32_t  u32Flags,
     230                                                void     *pvData,
     231                                                uint32_t  cbData)
     232{
     233    VBoxGuestCtrlHGCMMsgExecStatus Msg;
     234
     235    Msg.hdr.result = VERR_WRONG_ORDER;
     236    Msg.hdr.u32ClientID = u32ClientId;
     237    Msg.hdr.u32Function = GUEST_EXEC_SEND_STATUS;
     238    Msg.hdr.cParms = 4;
     239
     240    VbglHGCMParmUInt32Set(&Msg.pid, 0);
     241    VbglHGCMParmUInt32Set(&Msg.status, 0);
     242    VbglHGCMParmUInt32Set(&Msg.flags, 0);
     243    VbglHGCMParmPtrSet(&Msg.data, pvData, cbData);
     244
     245    int rc = vbglR3DoIOCtl(VBOXGUEST_IOCTL_HGCM_CALL(sizeof(Msg)), &Msg, sizeof(Msg));
     246    if (RT_SUCCESS(rc))
     247    {
     248        int rc2 = Msg.hdr.result;
     249        if (RT_FAILURE(rc2))
     250            rc = rc2;
     251    }
     252    return rc;
     253}
     254
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette