Virtualbox WDDM 用户模式显示驱动之vboxWddmDispCreateDevice
来源:互联网 发布:mac涂层全部脱落 编辑:程序博客网 时间:2024/06/02 05:33
/*提供底层的渲染操作接口*/static HRESULT APIENTRY vboxWddmDispCreateDevice (IN HANDLE hAdapter, IN D3DDDIARG_CREATEDEVICE* pCreateData){ vboxVDbgPrint(("==> "__FUNCTION__", hAdapter(0x%p)\n", hAdapter)); AssertBreakpoint(); PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)RTMemAllocZ(sizeof (VBOXWDDMDISP_DEVICE)); if (!pDevice) { vboxVDbgPrintR((__FUNCTION__": RTMemAllocZ returned NULL\n")); return E_OUTOFMEMORY; } PVBOXWDDMDISP_ADAPTER pAdapter = (PVBOXWDDMDISP_ADAPTER)hAdapter; pDevice->hDevice = pCreateData->hDevice; pDevice->pAdapter = pAdapter; pDevice->u32IfVersion = pCreateData->Interface; pDevice->uRtVersion = pCreateData->Version; pDevice->RtCallbacks = *pCreateData->pCallbacks; pDevice->pvCmdBuffer = pCreateData->pCommandBuffer; pDevice->cbCmdBuffer = pCreateData->CommandBufferSize; pDevice->fFlags = pCreateData->Flags; Assert(!pCreateData->AllocationListSize); if (pCreateData->AllocationListSize) { vboxVDbgPrintR((__FUNCTION__": Not implemented: AllocationListSize(%d)\n", pCreateData->AllocationListSize)); //pCreateData->pAllocationList = ?? return E_FAIL; } Assert(!pCreateData->PatchLocationListSize); if (pCreateData->PatchLocationListSize) { vboxVDbgPrintR((__FUNCTION__": Not implemented: PatchLocationListSize(%d)\n", pCreateData->PatchLocationListSize)); //pCreateData->pPatchLocationList = ?? return E_FAIL; } pCreateData->pDeviceFuncs->pfnSetRenderState = vboxWddmDDevSetRenderState; pCreateData->pDeviceFuncs->pfnUpdateWInfo = vboxWddmDDevUpdateWInfo; pCreateData->pDeviceFuncs->pfnValidateDevice = vboxWddmDDevValidateDevice; pCreateData->pDeviceFuncs->pfnSetTextureStageState = vboxWddmDDevSetTextureStageState; pCreateData->pDeviceFuncs->pfnSetTexture = vboxWddmDDevSetTexture; pCreateData->pDeviceFuncs->pfnSetPixelShader = vboxWddmDDevSetPixelShader; pCreateData->pDeviceFuncs->pfnSetPixelShaderConst = vboxWddmDDevSetPixelShaderConst; pCreateData->pDeviceFuncs->pfnSetStreamSourceUm = vboxWddmDDevSetStreamSourceUm; pCreateData->pDeviceFuncs->pfnSetIndices = vboxWddmDDevSetIndices; pCreateData->pDeviceFuncs->pfnSetIndicesUm = vboxWddmDDevSetIndicesUm; pCreateData->pDeviceFuncs->pfnDrawPrimitive = vboxWddmDDevDrawPrimitive; pCreateData->pDeviceFuncs->pfnDrawIndexedPrimitive = vboxWddmDDevDrawIndexedPrimitive; pCreateData->pDeviceFuncs->pfnDrawRectPatch = vboxWddmDDevDrawRectPatch; pCreateData->pDeviceFuncs->pfnDrawTriPatch = vboxWddmDDevDrawTriPatch; pCreateData->pDeviceFuncs->pfnDrawPrimitive2 = vboxWddmDDevDrawPrimitive2; pCreateData->pDeviceFuncs->pfnDrawIndexedPrimitive2 = vboxWddmDDevDrawIndexedPrimitive2; pCreateData->pDeviceFuncs->pfnVolBlt = vboxWddmDDevVolBlt; pCreateData->pDeviceFuncs->pfnBufBlt = vboxWddmDDevBufBlt; pCreateData->pDeviceFuncs->pfnTexBlt = vboxWddmDDevTexBlt; pCreateData->pDeviceFuncs->pfnStateSet = vboxWddmDDevStateSet; pCreateData->pDeviceFuncs->pfnSetPriority = vboxWddmDDevSetPriority; pCreateData->pDeviceFuncs->pfnClear = vboxWddmDDevClear; pCreateData->pDeviceFuncs->pfnUpdatePalette = vboxWddmDDevUpdatePalette; pCreateData->pDeviceFuncs->pfnSetPalette = vboxWddmDDevSetPalette; pCreateData->pDeviceFuncs->pfnSetVertexShaderConst = vboxWddmDDevSetVertexShaderConst; pCreateData->pDeviceFuncs->pfnMultiplyTransform = vboxWddmDDevMultiplyTransform; pCreateData->pDeviceFuncs->pfnSetTransform = vboxWddmDDevSetTransform; pCreateData->pDeviceFuncs->pfnSetViewport = vboxWddmDDevSetViewport; pCreateData->pDeviceFuncs->pfnSetZRange = vboxWddmDDevSetZRange; pCreateData->pDeviceFuncs->pfnSetMaterial = vboxWddmDDevSetMaterial; pCreateData->pDeviceFuncs->pfnSetLight = vboxWddmDDevSetLight; pCreateData->pDeviceFuncs->pfnCreateLight = vboxWddmDDevCreateLight; pCreateData->pDeviceFuncs->pfnDestroyLight = vboxWddmDDevDestroyLight; pCreateData->pDeviceFuncs->pfnSetClipPlane = vboxWddmDDevSetClipPlane; pCreateData->pDeviceFuncs->pfnGetInfo = vboxWddmDDevGetInfo; pCreateData->pDeviceFuncs->pfnLock = vboxWddmDDevLock; pCreateData->pDeviceFuncs->pfnUnlock = vboxWddmDDevUnlock; pCreateData->pDeviceFuncs->pfnCreateResource = vboxWddmDDevCreateResource; pCreateData->pDeviceFuncs->pfnDestroyResource = vboxWddmDDevDestroyResource; pCreateData->pDeviceFuncs->pfnSetDisplayMode = vboxWddmDDevSetDisplayMode; pCreateData->pDeviceFuncs->pfnPresent = vboxWddmDDevPresent; pCreateData->pDeviceFuncs->pfnFlush = vboxWddmDDevFlush; pCreateData->pDeviceFuncs->pfnCreateVertexShaderFunc = vboxWddmDDevCreateVertexShaderFunc; pCreateData->pDeviceFuncs->pfnDeleteVertexShaderFunc = vboxWddmDDevDeleteVertexShaderFunc; pCreateData->pDeviceFuncs->pfnSetVertexShaderFunc = vboxWddmDDevSetVertexShaderFunc; pCreateData->pDeviceFuncs->pfnCreateVertexShaderDecl = vboxWddmDDevCreateVertexShaderDecl; pCreateData->pDeviceFuncs->pfnDeleteVertexShaderDecl = vboxWddmDDevDeleteVertexShaderDecl; pCreateData->pDeviceFuncs->pfnSetVertexShaderDecl = vboxWddmDDevSetVertexShaderDecl; pCreateData->pDeviceFuncs->pfnSetVertexShaderConstI = vboxWddmDDevSetVertexShaderConstI; pCreateData->pDeviceFuncs->pfnSetVertexShaderConstB = vboxWddmDDevSetVertexShaderConstB; pCreateData->pDeviceFuncs->pfnSetScissorRect = vboxWddmDDevSetScissorRect; pCreateData->pDeviceFuncs->pfnSetStreamSource = vboxWddmDDevSetStreamSource; pCreateData->pDeviceFuncs->pfnSetStreamSourceFreq = vboxWddmDDevSetStreamSourceFreq; pCreateData->pDeviceFuncs->pfnSetConvolutionKernelMono = vboxWddmDDevSetConvolutionKernelMono; pCreateData->pDeviceFuncs->pfnComposeRects = vboxWddmDDevComposeRects; pCreateData->pDeviceFuncs->pfnBlt = vboxWddmDDevBlt; pCreateData->pDeviceFuncs->pfnColorFill = vboxWddmDDevColorFill; pCreateData->pDeviceFuncs->pfnDepthFill = vboxWddmDDevDepthFill; pCreateData->pDeviceFuncs->pfnCreateQuery = vboxWddmDDevCreateQuery; pCreateData->pDeviceFuncs->pfnDestroyQuery = vboxWddmDDevDestroyQuery; pCreateData->pDeviceFuncs->pfnIssueQuery = vboxWddmDDevIssueQuery; pCreateData->pDeviceFuncs->pfnGetQueryData = vboxWddmDDevGetQueryData; pCreateData->pDeviceFuncs->pfnSetRenderTarget = vboxWddmDDevSetRenderTarget; pCreateData->pDeviceFuncs->pfnSetDepthStencil = vboxWddmDDevSetDepthStencil; pCreateData->pDeviceFuncs->pfnGenerateMipSubLevels = vboxWddmDDevGenerateMipSubLevels; pCreateData->pDeviceFuncs->pfnSetPixelShaderConstI = vboxWddmDDevSetPixelShaderConstI; pCreateData->pDeviceFuncs->pfnSetPixelShaderConstB = vboxWddmDDevSetPixelShaderConstB; pCreateData->pDeviceFuncs->pfnCreatePixelShader = vboxWddmDDevCreatePixelShader; pCreateData->pDeviceFuncs->pfnDeletePixelShader = vboxWddmDDevDeletePixelShader; pCreateData->pDeviceFuncs->pfnCreateDecodeDevice = vboxWddmDDevCreateDecodeDevice; pCreateData->pDeviceFuncs->pfnDestroyDecodeDevice = vboxWddmDDevDestroyDecodeDevice; pCreateData->pDeviceFuncs->pfnSetDecodeRenderTarget = vboxWddmDDevSetDecodeRenderTarget; pCreateData->pDeviceFuncs->pfnDecodeBeginFrame = vboxWddmDDevDecodeBeginFrame; pCreateData->pDeviceFuncs->pfnDecodeEndFrame = vboxWddmDDevDecodeEndFrame; pCreateData->pDeviceFuncs->pfnDecodeExecute = vboxWddmDDevDecodeExecute; pCreateData->pDeviceFuncs->pfnDecodeExtensionExecute = vboxWddmDDevDecodeExtensionExecute; pCreateData->pDeviceFuncs->pfnCreateVideoProcessDevice = vboxWddmDDevCreateVideoProcessDevice; pCreateData->pDeviceFuncs->pfnDestroyVideoProcessDevice = vboxWddmDDevDestroyVideoProcessDevice; pCreateData->pDeviceFuncs->pfnVideoProcessBeginFrame = vboxWddmDDevVideoProcessBeginFrame; pCreateData->pDeviceFuncs->pfnVideoProcessEndFrame = vboxWddmDDevVideoProcessEndFrame; pCreateData->pDeviceFuncs->pfnSetVideoProcessRenderTarget = vboxWddmDDevSetVideoProcessRenderTarget; pCreateData->pDeviceFuncs->pfnVideoProcessBlt = vboxWddmDDevVideoProcessBlt; pCreateData->pDeviceFuncs->pfnCreateExtensionDevice = vboxWddmDDevCreateExtensionDevice; pCreateData->pDeviceFuncs->pfnDestroyExtensionDevice = vboxWddmDDevDestroyExtensionDevice; pCreateData->pDeviceFuncs->pfnExtensionExecute = vboxWddmDDevExtensionExecute; pCreateData->pDeviceFuncs->pfnCreateOverlay = vboxWddmDDevCreateOverlay; pCreateData->pDeviceFuncs->pfnUpdateOverlay = vboxWddmDDevUpdateOverlay; pCreateData->pDeviceFuncs->pfnFlipOverlay = vboxWddmDDevFlipOverlay; pCreateData->pDeviceFuncs->pfnGetOverlayColorControls = vboxWddmDDevGetOverlayColorControls; pCreateData->pDeviceFuncs->pfnSetOverlayColorControls = vboxWddmDDevSetOverlayColorControls; pCreateData->pDeviceFuncs->pfnDestroyOverlay = vboxWddmDDevDestroyOverlay; pCreateData->pDeviceFuncs->pfnDestroyDevice = vboxWddmDDevDestroyDevice; pCreateData->pDeviceFuncs->pfnQueryResourceResidency = vboxWddmDDevQueryResourceResidency; pCreateData->pDeviceFuncs->pfnOpenResource = vboxWddmDDevOpenResource; pCreateData->pDeviceFuncs->pfnGetCaptureAllocationHandle = vboxWddmDDevGetCaptureAllocationHandle; pCreateData->pDeviceFuncs->pfnCaptureToSysMem = vboxWddmDDevCaptureToSysMem; pCreateData->pDeviceFuncs->pfnLockAsync = NULL; //vboxWddmDDevLockAsync; pCreateData->pDeviceFuncs->pfnUnlockAsync = NULL; //vboxWddmDDevUnlockAsync; pCreateData->pDeviceFuncs->pfnRename = NULL; //vboxWddmDDevRename; vboxVDbgPrint(("<== "__FUNCTION__", hAdapter(0x%p)\n", hAdapter)); return E_FAIL;}
0 0
- Virtualbox WDDM 用户模式显示驱动之vboxWddmDispCreateDevice
- Virtualbox WDDM 用户模式显示驱动之OpenAdapter
- Virtualbox WDDM 用户模式显示驱动之vboxWddmDispGetCaps
- Virtualbox WDDM 用户模式显示驱动之vboxWddmDispCloseAdapter
- Virtualbox WDDM之DriverEntry
- Virtualbox WDDM之DxgkDdiStartDevice
- Virtualbox WDDM之DxgkDdiQueryChildRelations
- Virtualbox WDDM之DxgkDdiQueryChildStatus
- Virtualbox WDDM之DxgkDdiQueryDeviceDescriptor
- Virtualbox WDDM之DxgkDdiRecommendFunctionalVidPn
- Virtualbox WDDM之DxgkDdiIsSupportedVidPn
- Virtualbox WDDM之DxgkDdiEnumVidPnCofuncModality
- Virtualbox WDDM之DxgkDdiQueryAdapterInfo
- Virtualbox WDDM之DxgkDdiGetStandardAllocationDriverData
- Virtualbox WDDM之DxgkDdiCreateAllocation
- Virtualbox WDDM之DxgkDdiInterruptRoutine
- Virtualbox WDDM之DxgkDdiDpcRoutine
- Virtualbox WDDM之DxgkDdiCreateAllocation
- Android studio自动安装releaseAPK
- 进程间通信 (OSX/iOS)
- 位图法--查找字符串中第一个不重复的字符
- CodeSign error: code signing is required for product type Application in SDK iOS
- 制作U盘启动来安装Linux系统的具体方法(图文)
- Virtualbox WDDM 用户模式显示驱动之vboxWddmDispCreateDevice
- Java重写方法与初始化的隐患
- android listview左划删除与点击事件及item样式扩展
- 第二个wp app上架-- owl Bus
- linux中内存使用,swap,cache,buffer的含义
- 度量快速开发平台中DataTable.Select的一些其他用法
- No matching provisioning profiles found
- FIX Coordinates with windows DDK
- centos65 安装 脸书的proxygen