[vbox-dev] vbox-dev Digest, Vol 81, Issue 26

李明 451105605 at qq.com
Mon Jul 29 06:11:55 GMT 2013


yes , my host is windows  ,guest is linux 。 i want to transfer data between guest and host , and i use code blow 。the same if guest is windows and in windows driver is work ok , but ,why can't use it in linux driver the same way 。


int  vpaudio_call_hgcm(struct minivosc_device *mydev,struct hgcm_call_struct *param)
{
    
    int  rc = VINF_SUCCESS;

    RM_HGCM_CALL_REQUEST_SINGLE sinreq  ={0};
    RM_HGCM_CALL_REQUEST_DUAL   dualreq ={0};
    
    if (param->function_code == HGCM_FN_DUAL_BUFFER_REQUEST)
    {
        dualreq.InParam.type  = VMMDevHGCMParmType_LinAddr_In;
        dualreq.OutParam.type = VMMDevHGCMParmType_LinAddr_Out;
        
        dualreq.callinfo.u32Function = HGCM_FN_DUAL_BUFFER_REQUEST;
        dualreq.callinfo.u32ClientID = mydev->ulClientID;
        dualreq.callinfo.cParms      = 2;
        
        dualreq.InParam.u.Pointer.u.linearAddr  = (RTGCPTR32)param->in_data;
        dualreq.InParam.u.Pointer.size          = param->in_size;
        dualreq.OutParam.u.Pointer.u.linearAddr = (RTGCPTR32)param->out_data;
        dualreq.OutParam.u.Pointer.size         = param->out_size;
    
        return vPVbglHGCMCall (mydev->handle,&dualreq.callinfo,sizeof(dualreq));
    }

    switch (param->function_code)
    {
        case HGCM_FN_OUT_REQUEST:
         
            sinreq.Param.type = VMMDevHGCMParmType_LinAddr_Out;
            
            sinreq.Param.u.Pointer.u.linearAddr = (RTGCPTR32)param->out_data;
            sinreq.Param.u.Pointer.size         = param->out_size;
            
            break;
        
        case HGCM_FN_IN_REQUEST:
        
            sinreq.Param.type = VMMDevHGCMParmType_LinAddr_In;
            
            sinreq.Param.u.Pointer.u.linearAddr = (RTGCPTR32)param->in_data;
            sinreq.Param.u.Pointer.size         = param->in_size;
            
            break;
        
        default:
        
            sinreq.Param.type = VMMDevHGCMParmType_LinAddr;
            
            sinreq.Param.u.Pointer.u.linearAddr = (RTGCPTR32)param->in_data;
            sinreq.Param.u.Pointer.size         = param->in_size;
    }
    
    sinreq.callinfo.u32Function = param->function_code;
    sinreq.callinfo.u32ClientID = mydev->ulClientID;
    sinreq.callinfo.cParms      = 1;

    rc = vPVbglHGCMCall (mydev->handle,&sinreq.callinfo,sizeof(sinreq));

    if (RT_SUCCESS (rc)){
        rc = sinreq.callinfo.result;
    }

    return rc;

}





------------------ Original ------------------
From: "vbox-dev-request"; 
Date: 2013年7月28日(星期天) 凌晨3:00
To: "vbox-dev"; 
Subject: vbox-dev Digest, Vol 81, Issue 26



Send vbox-dev mailing list submissions to
	vbox-dev at virtualbox.org

To subscribe or unsubscribe via the World Wide Web, visit
	https://www.virtualbox.org/mailman/listinfo/vbox-dev
or, via email, send a message with subject or body 'help' to
	vbox-dev-request at virtualbox.org

You can reach the person managing the list at
	vbox-dev-owner at virtualbox.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of vbox-dev digest..."


Today's Topics:

   1. about hgcm in linux ( ?? )


----------------------------------------------------------------------

Message: 1
Date: Sat, 27 Jul 2013 14:11:57 +0800
From: " ?? " <451105605 at qq.com>
Subject: [vbox-dev] about hgcm in linux
To: " vbox-dev " <vbox-dev at virtualbox.org>
Message-ID: <tencent_742AB1EF5BD288B30A1344E8 at qq.com>
Content-Type: text/plain; charset="gb18030"

Hi, i have a problem ? in windows ?i can send data to host in guest by use hgcm in drivers ? but ,in linux ,i can't use it in the same way ? why ?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.virtualbox.org/pipermail/vbox-dev/attachments/20130727/ffa5d42e/attachment-0001.html 

------------------------------

_______________________________________________
vbox-dev mailing list
vbox-dev at virtualbox.org
https://www.virtualbox.org/mailman/listinfo/vbox-dev


End of vbox-dev Digest, Vol 81, Issue 26
****************************************
.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.virtualbox.org/pipermail/vbox-dev/attachments/20130729/f89c1e18/attachment.html>


More information about the vbox-dev mailing list