Virtualbox WDDM之DxgkDdiSetPointerShape

来源:互联网 发布:斐讯路由器 淘宝 编辑:程序博客网 时间:2024/06/07 05:31


/*The DxgkDdiSetPointerShape function sets the appearance and location of the mouse pointer.设置鼠标形状颜色等表现形式,位置The DxgkDdiSetPointerShape function is called independently of all of the other display miniport driver functions独立调用*/NTSTATUSAPIENTRYDxgkDdiSetPointerShape(    CONST HANDLE  hAdapter,    CONST DXGKARG_SETPOINTERSHAPE*  pSetPointerShape){//    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));    vboxVDbgBreakFv();    NTSTATUS Status = STATUS_NOT_SUPPORTED;    if (vboxQueryHostWantsAbsolute())    {        /* mouse integration is ON */        PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)hAdapter;        PVBOXWDDM_POINTER_INFO pPointerInfo = &pDevExt->aSources[pSetPointerShape->VidPnSourceId].PointerInfo;        /* @todo: to avoid extra data copy and extra heap allocation,         *  need to maintain the pre-allocated HGSMI buffer and convert the data directly to it */        if (vboxVddmPointerShapeToAttributes(pSetPointerShape, pPointerInfo))        {            if (vboxUpdatePointerShape (pDevExt, &pPointerInfo->Attributes.data, VBOXWDDM_POINTER_ATTRIBUTES_SIZE))                Status = STATUS_SUCCESS;            else            {                AssertBreakpoint();                drprintf((__FUNCTION__": vboxUpdatePointerShape failed\n"));            }        }    }//    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));    return Status;}


0 0