VBOXVHWACMD* vboxVhwaCommandCreate(PVBOXMP_DEVEXT pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId, VBOXVHWACMD_TYPE enmCmd, VBOXVHWACMD_LENGTH cbCmd) { vboxVhwaCommandCheckCompletion(pDevExt); #ifdef VBOXVHWA_WITH_SHGSMI VBOXVHWACMD* pHdr = (VBOXVHWACMD*)VBoxSHGSMICommandAlloc(&pDevExt->u.primary.hgsmiAdapterHeap, cbCmd + VBOXVHWACMD_HEADSIZE(), HGSMI_CH_VBVA, VBVA_VHWA_CMD); #else VBOXVHWACMD* pHdr = (VBOXVHWACMD*)VBoxHGSMIBufferAlloc(&VBoxCommonFromDeviceExt(pDevExt)->guestCtx, cbCmd + VBOXVHWACMD_HEADSIZE(), HGSMI_CH_VBVA, VBVA_VHWA_CMD); #endif Assert(pHdr); if (!pHdr) { LOGREL(("VBoxHGSMIBufferAlloc failed")); } else { vboxVhwaHdrInit(pHdr, srcId, enmCmd); } return pHdr; }
static VBOXCMDVBVA_CTL * vboxCmdVbvaCtlCreate(PHGSMIGUESTCOMMANDCONTEXT pHGSMICtx, uint32_t cbCtl) { Assert(cbCtl >= sizeof (VBOXCMDVBVA_CTL)); return (VBOXCMDVBVA_CTL*)VBoxSHGSMICommandAlloc(&pHGSMICtx->heapCtx, cbCtl, HGSMI_CH_VBVA, VBVA_CMDVBVA_CTL); }