// d3d10umddi.h
typedef struct D3D10DDI_DEVICEFUNCS {
PFND3D10DDI_RESOURCEUPDATESUBRESOURCEUP pfnDefaultConstantBufferUpdateSubresourceUP;
PFND3D10DDI_SETCONSTANTBUFFERS pfnVsSetConstantBuffers;
PFND3D10DDI_SETSHADERRESOURCES pfnPsSetShaderResources;
PFND3D10DDI_SETSHADER pfnPsSetShader;
PFND3D10DDI_SETSAMPLERS pfnPsSetSamplers;
PFND3D10DDI_SETSHADER pfnVsSetShader;
PFND3D10DDI_DRAWINDEXED pfnDrawIndexed;
PFND3D10DDI_DRAW pfnDraw;
PFND3D10DDI_RESOURCEMAP pfnDynamicIABufferMapNoOverwrite;
PFND3D10DDI_RESOURCEUNMAP pfnDynamicIABufferUnmap;
PFND3D10DDI_RESOURCEMAP pfnDynamicConstantBufferMapDiscard;
PFND3D10DDI_RESOURCEMAP pfnDynamicIABufferMapDiscard;
PFND3D10DDI_RESOURCEUNMAP pfnDynamicConstantBufferUnmap;
PFND3D10DDI_SETCONSTANTBUFFERS pfnPsSetConstantBuffers;
PFND3D10DDI_SETINPUTLAYOUT pfnIaSetInputLayout;
PFND3D10DDI_IA_SETVERTEXBUFFERS pfnIaSetVertexBuffers;
PFND3D10DDI_IA_SETINDEXBUFFER pfnIaSetIndexBuffer;
PFND3D10DDI_DRAWINDEXEDINSTANCED pfnDrawIndexedInstanced;
PFND3D10DDI_DRAWINSTANCED pfnDrawInstanced;
PFND3D10DDI_RESOURCEMAP pfnDynamicResourceMapDiscard;
PFND3D10DDI_RESOURCEUNMAP pfnDynamicResourceUnmap;
PFND3D10DDI_SETCONSTANTBUFFERS pfnGsSetConstantBuffers;
PFND3D10DDI_SETSHADER pfnGsSetShader;
PFND3D10DDI_IA_SETTOPOLOGY pfnIaSetTopology;
PFND3D10DDI_RESOURCEMAP pfnStagingResourceMap;
PFND3D10DDI_RESOURCEUNMAP pfnStagingResourceUnmap;
PFND3D10DDI_SETSHADERRESOURCES pfnVsSetShaderResources;
PFND3D10DDI_SETSAMPLERS pfnVsSetSamplers;
PFND3D10DDI_SETSHADERRESOURCES pfnGsSetShaderResources;
PFND3D10DDI_SETSAMPLERS pfnGsSetSamplers;
PFND3D10DDI_SETRENDERTARGETS pfnSetRenderTargets;
PFND3D10DDI_SHADERRESOURCEVIEWREADAFTERWRITEHAZARD pfnShaderResourceViewReadAfterWriteHazard;
PFND3D10DDI_RESOURCEREADAFTERWRITEHAZARD pfnResourceReadAfterWriteHazard;
PFND3D10DDI_SETBLENDSTATE pfnSetBlendState;
PFND3D10DDI_SETDEPTHSTENCILSTATE pfnSetDepthStencilState;
PFND3D10DDI_SETRASTERIZERSTATE pfnSetRasterizerState;
PFND3D10DDI_QUERYEND pfnQueryEnd;
PFND3D10DDI_QUERYBEGIN pfnQueryBegin;
PFND3D10DDI_RESOURCECOPYREGION pfnResourceCopyRegion;
PFND3D10DDI_RESOURCEUPDATESUBRESOURCEUP pfnResourceUpdateSubresourceUP;
PFND3D10DDI_SO_SETTARGETS pfnSoSetTargets;
PFND3D10DDI_DRAWAUTO pfnDrawAuto;
PFND3D10DDI_SETVIEWPORTS pfnSetViewports;
PFND3D10DDI_SETSCISSORRECTS pfnSetScissorRects;
PFND3D10DDI_CLEARRENDERTARGETVIEW pfnClearRenderTargetView;
PFND3D10DDI_CLEARDEPTHSTENCILVIEW pfnClearDepthStencilView;
PFND3D10DDI_SETPREDICATION pfnSetPredication;
PFND3D10DDI_QUERYGETDATA pfnQueryGetData;
PFND3D10DDI_FLUSH pfnFlush;
PFND3D10DDI_GENMIPS pfnGenMips;
PFND3D10DDI_RESOURCECOPY pfnResourceCopy;
PFND3D10DDI_RESOURCERESOLVESUBRESOURCE pfnResourceResolveSubresource;
PFND3D10DDI_RESOURCEMAP pfnResourceMap;
PFND3D10DDI_RESOURCEUNMAP pfnResourceUnmap;
PFND3D10DDI_RESOURCEISSTAGINGBUSY pfnResourceIsStagingBusy;
PFND3D10DDI_RELOCATEDEVICEFUNCS pfnRelocateDeviceFuncs;
PFND3D10DDI_CALCPRIVATERESOURCESIZE pfnCalcPrivateResourceSize;
PFND3D10DDI_CALCPRIVATEOPENEDRESOURCESIZE pfnCalcPrivateOpenedResourceSize;
PFND3D10DDI_CREATERESOURCE pfnCreateResource;
PFND3D10DDI_OPENRESOURCE pfnOpenResource;
PFND3D10DDI_DESTROYRESOURCE pfnDestroyResource;
PFND3D10DDI_CALCPRIVATESHADERRESOURCEVIEWSIZE pfnCalcPrivateShaderResourceViewSize;
PFND3D10DDI_CREATESHADERRESOURCEVIEW pfnCreateShaderResourceView;
PFND3D10DDI_DESTROYSHADERRESOURCEVIEW pfnDestroyShaderResourceView;
PFND3D10DDI_CALCPRIVATERENDERTARGETVIEWSIZE pfnCalcPrivateRenderTargetViewSize;
PFND3D10DDI_CREATERENDERTARGETVIEW pfnCreateRenderTargetView;
PFND3D10DDI_DESTROYRENDERTARGETVIEW pfnDestroyRenderTargetView;
PFND3D10DDI_CALCPRIVATEDEPTHSTENCILVIEWSIZE pfnCalcPrivateDepthStencilViewSize;
PFND3D10DDI_CREATEDEPTHSTENCILVIEW pfnCreateDepthStencilView;
PFND3D10DDI_DESTROYDEPTHSTENCILVIEW pfnDestroyDepthStencilView;
PFND3D10DDI_CALCPRIVATEELEMENTLAYOUTSIZE pfnCalcPrivateElementLayoutSize;
PFND3D10DDI_CREATEELEMENTLAYOUT pfnCreateElementLayout;
PFND3D10DDI_DESTROYELEMENTLAYOUT pfnDestroyElementLayout;
PFND3D10DDI_CALCPRIVATEBLENDSTATESIZE pfnCalcPrivateBlendStateSize;
PFND3D10DDI_CREATEBLENDSTATE pfnCreateBlendState;
PFND3D10DDI_DESTROYBLENDSTATE pfnDestroyBlendState;
PFND3D10DDI_CALCPRIVATEDEPTHSTENCILSTATESIZE pfnCalcPrivateDepthStencilStateSize;
PFND3D10DDI_CREATEDEPTHSTENCILSTATE pfnCreateDepthStencilState;
PFND3D10DDI_DESTROYDEPTHSTENCILSTATE pfnDestroyDepthStencilState;
PFND3D10DDI_CALCPRIVATERASTERIZERSTATESIZE pfnCalcPrivateRasterizerStateSize;
PFND3D10DDI_CREATERASTERIZERSTATE pfnCreateRasterizerState;
PFND3D10DDI_DESTROYRASTERIZERSTATE pfnDestroyRasterizerState;
PFND3D10DDI_CALCPRIVATESHADERSIZE pfnCalcPrivateShaderSize;
PFND3D10DDI_CREATEVERTEXSHADER pfnCreateVertexShader;
PFND3D10DDI_CREATEGEOMETRYSHADER pfnCreateGeometryShader;
PFND3D10DDI_CREATEPIXELSHADER pfnCreatePixelShader;
PFND3D10DDI_CALCPRIVATEGEOMETRYSHADERWITHSTREAMOUTPUT pfnCalcPrivateGeometryShaderWithStreamOutput;
PFND3D10DDI_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT pfnCreateGeometryShaderWithStreamOutput;
PFND3D10DDI_DESTROYSHADER pfnDestroyShader;
PFND3D10DDI_CALCPRIVATESAMPLERSIZE pfnCalcPrivateSamplerSize;
PFND3D10DDI_CREATESAMPLER pfnCreateSampler;
PFND3D10DDI_DESTROYSAMPLER pfnDestroySampler;
PFND3D10DDI_CALCPRIVATEQUERYSIZE pfnCalcPrivateQuerySize;
PFND3D10DDI_CREATEQUERY pfnCreateQuery;
PFND3D10DDI_DESTROYQUERY pfnDestroyQuery;
PFND3D10DDI_CHECKFORMATSUPPORT pfnCheckFormatSupport;
PFND3D10DDI_CHECKMULTISAMPLEQUALITYLEVELS pfnCheckMultisampleQualityLevels;
PFND3D10DDI_CHECKCOUNTERINFO pfnCheckCounterInfo;
PFND3D10DDI_CHECKCOUNTER pfnCheckCounter;
PFND3D10DDI_DESTROYDEVICE pfnDestroyDevice;
PFND3D10DDI_SETTEXTFILTERSIZE pfnSetTextFilterSize;
PFND3D10DDI_RESETPRIMITIVEID pfnResetPrimitiveID;
PFND3D10DDI_SETVERTEXPIPELINEOUTPUT pfnSetVertexPipelineOutput;
} D3D10DDI_DEVICEFUNCS;
View the official Windows Driver Kit DDI referenceNo description available.
The D3D10DDI_DEVICEFUNCS structure contains functions that the user-mode display driver can implement to render graphics primitives and process state changes.
pfnDefaultConstantBufferUpdateSubresourceUPA pointer to the driver's DefaultConstantBufferUpdateSubresourceUP function.
pfnVsSetConstantBuffersA pointer to the driver's VsSetConstantBuffers function.
pfnPsSetShaderResourcesA pointer to the driver's PsSetShaderResources function.
pfnPsSetShaderA pointer to the driver's PsSetShader function.
pfnPsSetSamplersA pointer to the driver's PsSetSamplers function.
pfnVsSetShaderA pointer to the driver's VsSetShader function.
pfnDrawIndexedA pointer to the driver's DrawIndexed function.
pfnDrawA pointer to the driver's Draw function.
pfnDynamicIABufferMapNoOverwriteA pointer to the driver's ResourceMap function. For more information about whether to implement a separate DynamicIABufferMapNoOverwrite function or to point to the multipurpose ResourceMap, see the Remarks section of ResourceMap.
pfnDynamicIABufferUnmapA pointer to the driver's ResourceUnmap function. For more information about whether to implement a separate DynamicIABufferUnmap function or to point to the multipurpose ResourceUnmap, see the Remarks section of ResourceMap.
pfnDynamicConstantBufferMapDiscardA pointer to the driver's ResourceMap function. For more information about whether to implement a separate DynamicConstantBufferMapDiscard function or to point to the multipurpose ResourceMap, see the Remarks section of ResourceMap.
pfnDynamicIABufferMapDiscardA pointer to the driver's ResourceMap function. For more information about whether to implement a separate DynamicIABufferMapDiscard function or to point to the multipurpose ResourceMap, see the Remarks section of ResourceMap.
pfnDynamicConstantBufferUnmapA pointer to the driver's ResourceUnmap function. For more information about whether to implement a separate DynamicConstantBufferUnmap function or to point to the multipurpose ResourceUnmap, see the Remarks section of ResourceMap.
pfnPsSetConstantBuffersA pointer to the driver's PsSetConstantBuffers function.
pfnIaSetInputLayoutA pointer to the driver's IaSetInputLayout function.
pfnIaSetVertexBuffersA pointer to the driver's IaSetVertexBuffers function.
pfnIaSetIndexBufferA pointer to the driver's IaSetIndexBuffer function.
pfnDrawIndexedInstancedA pointer to the driver's DrawIndexedInstanced function.
pfnDrawInstancedA pointer to the driver's DrawInstanced function.
pfnDynamicResourceMapDiscardA pointer to the driver's ResourceMap function. For more information about whether to implement a separate DynamicResourceMapDiscard function or to point to the multipurpose ResourceMap, see the Remarks section of ResourceMap.
pfnDynamicResourceUnmapA pointer to the driver's ResourceUnmap function. For more information about whether to implement a separate DynamicResourceUnmap function or to point to the multipurpose ResourceUnmap, see the Remarks section of ResourceUnmap.
pfnGsSetConstantBuffersA pointer to the driver's GsSetConstantBuffers function.
pfnGsSetShaderA pointer to the driver's GsSetShader function.
pfnIaSetTopologyA pointer to the driver's IaSetTopology function.
pfnStagingResourceMapA pointer to the driver's ResourceMap function. For more information about whether to implement a separate StagingResourceMap function or to point to the multipurpose ResourceMap, see the Remarks section of ResourceMap.
pfnStagingResourceUnmapA pointer to the driver's ResourceUnmap function. For more information about whether to implement a separate StagingResourceUnmap function or to point to the multipurpose ResourceUnmap, see the Remarks section of ResourceMap.
pfnVsSetShaderResourcesA pointer to the driver's VsSetShaderResources function.
pfnVsSetSamplersA pointer to the driver's VsSetSamplers function.
pfnGsSetShaderResourcesA pointer to the driver's GsSetShaderResources function.
pfnGsSetSamplersA pointer to the driver's GsSetSamplers function.
pfnSetRenderTargetsA pointer to the driver's SetRenderTargets function.
pfnShaderResourceViewReadAfterWriteHazardA pointer to the driver's ShaderResourceViewReadAfterWriteHazard function.
pfnResourceReadAfterWriteHazardA pointer to the driver's ResourceReadAfterWriteHazard function.
pfnSetBlendStateA pointer to the driver's SetBlendState function.
pfnSetDepthStencilStateA pointer to the driver's SetDepthStencilState function.
pfnSetRasterizerStateA pointer to the driver's SetRasterizerState function.
pfnQueryEndA pointer to the driver's QueryEnd function.
pfnQueryBeginA pointer to the driver's QueryBegin function.
pfnResourceCopyRegionA pointer to the driver's ResourceCopyRegion function.
pfnResourceUpdateSubresourceUPA pointer to the driver's ResourceUpdateSubresourceUP function.
pfnSoSetTargetsA pointer to the driver's SoSetTargets function.
pfnDrawAutoA pointer to the driver's DrawAuto function.
pfnSetViewportsA pointer to the driver's SetViewports function.
pfnSetScissorRectsA pointer to the driver's SetScissorRects function.
pfnClearRenderTargetViewA pointer to the driver's ClearRenderTargetView function.
pfnClearDepthStencilViewA pointer to the driver's ClearDepthStencilView function.
pfnSetPredicationA pointer to the driver's SetPredication function.
pfnQueryGetDataA pointer to the driver's QueryGetData function.
pfnFlushA pointer to the driver's Flush(D3D10) function.
pfnGenMipsA pointer to the driver's GenMips function.
pfnResourceCopyA pointer to the driver's ResourceCopy function.
pfnResourceResolveSubresourceA pointer to the driver's ResourceResolveSubresource function.
pfnResourceMapA pointer to the driver's ResourceMap function.
pfnResourceUnmapA pointer to the driver's ResourceUnmap function.
pfnResourceIsStagingBusyA pointer to the driver's ResourceIsStagingBusy function.
pfnRelocateDeviceFuncsA pointer to the driver's RelocateDeviceFuncs function.
pfnCalcPrivateResourceSizeA pointer to the driver's CalcPrivateResourceSize function.
pfnCalcPrivateOpenedResourceSizeA pointer to the driver's CalcPrivateOpenedResourceSize function.
pfnCreateResourceA pointer to the driver's CreateResource(D3D10) function.
pfnOpenResourceA pointer to the driver's OpenResource(D3D10) function.
pfnDestroyResourceA pointer to the driver's DestroyResource(D3D10) function.
pfnCalcPrivateShaderResourceViewSizeA pointer to the driver's CalcPrivateShaderResourceViewSize function.
pfnCreateShaderResourceViewA pointer to the driver's CreateShaderResourceView function.
pfnDestroyShaderResourceViewA pointer to the driver's DestroyShaderResourceView function.
pfnCalcPrivateRenderTargetViewSizeA pointer to the driver's CalcPrivateRenderTargetViewSize function.
pfnCreateRenderTargetViewA pointer to the driver's CreateRenderTargetView function.
pfnDestroyRenderTargetViewA pointer to the driver's DestroyRenderTargetView function.
pfnCalcPrivateDepthStencilViewSizeA pointer to the driver's CalcPrivateDepthStencilViewSize function.
pfnCreateDepthStencilViewA pointer to the driver's CreateDepthStencilView function.
pfnDestroyDepthStencilViewA pointer to the driver's DestroyDepthStencilView function.
pfnCalcPrivateElementLayoutSizeA pointer to the driver's CalcPrivateElementLayoutSize function.
pfnCreateElementLayoutA pointer to the driver's CreateElementLayout function.
pfnDestroyElementLayoutA pointer to the driver's DestroyElementLayout function.
pfnCalcPrivateBlendStateSizeA pointer to the driver's CalcPrivateBlendStateSize function.
pfnCreateBlendStateA pointer to the driver's CreateBlendState function.
pfnDestroyBlendStateA pointer to the driver's DestroyBlendState function.
pfnCalcPrivateDepthStencilStateSizeA pointer to the driver's CalcPrivateDepthStencilStateSize function.
pfnCreateDepthStencilStateA pointer to the driver's CreateDepthStencilState function.
pfnDestroyDepthStencilStateA pointer to the driver's DestroyDepthStencilState function.
pfnCalcPrivateRasterizerStateSizeA pointer to the driver's CalcPrivateRasterizerStateSize function.
pfnCreateRasterizerStateA pointer to the driver's CreateRasterizerState function.
pfnDestroyRasterizerStateA pointer to the driver's DestroyRasterizerState function.
pfnCalcPrivateShaderSizeA pointer to the driver's CalcPrivateShaderSize function.
pfnCreateVertexShaderA pointer to the driver's CreateVertexShader(D3D10) function.
pfnCreateGeometryShaderA pointer to the driver's CreateGeometryShader function.
pfnCreatePixelShaderA pointer to the driver's CreatePixelShader(D3D10) function.
pfnCalcPrivateGeometryShaderWithStreamOutputA pointer to the driver's CalcPrivateGeometryShaderWithStreamOutput function.
pfnCreateGeometryShaderWithStreamOutputA pointer to the driver's CreateGeometryShaderWithStreamOutput function.
pfnDestroyShaderA pointer to the driver's DestroyShader function.
pfnCalcPrivateSamplerSizeA pointer to the driver's CalcPrivateSamplerSize function.
pfnCreateSamplerA pointer to the driver's CreateSampler function.
pfnDestroySamplerA pointer to the driver's DestroySampler function.
pfnCalcPrivateQuerySizeA pointer to the driver's CalcPrivateQuerySize function.
pfnCreateQueryA pointer to the driver's CreateQuery(D3D10) function.
pfnDestroyQueryA pointer to the driver's DestroyQuery(D3D10) function.
pfnCheckFormatSupportA pointer to the driver's CheckFormatSupport function.
pfnCheckMultisampleQualityLevelsA pointer to the driver's CheckMultisampleQualityLevels function.
pfnCheckCounterInfoA pointer to the driver's CheckCounterInfo function.
pfnCheckCounterA pointer to the driver's CheckCounter function.
pfnDestroyDeviceA pointer to the driver's DestroyDevice(D3D10) function.
pfnSetTextFilterSizeA pointer to the driver's SetTextFilterSize function.
pfnResetPrimitiveIDpfnSetVertexPipelineOutputThe order of user-mode display driver functions (that is, the order of the members of the D3D10DDI_DEVICEFUNCS structure) is in decreasing order of priority (in regard to performance).
The user-mode display driver can use different names for these functions because the address of the function table (this structure) is shared between the Direct3D 10 runtime and the driver through the call to the driver's CreateDevice(D3D10) function.
The pfnResetPrimitiveID and pfnSetVertexPipelineOutput members (not shown here) and their data types are reserved for system use and should not be used in your driver.