D3DDDI_DEVICEFUNCS 结构 (d3dumddi.h)

D3DDDI_DEVICEFUNCS 结构包含用户模式显示驱动程序可以实现的用于呈现图形基元和处理状态更改的函数。

语法

typedef struct _D3DDDI_DEVICEFUNCS {
  PFND3DDDI_SETRENDERSTATE                           pfnSetRenderState;
  PFND3DDDI_UPDATEWINFO                              pfnUpdateWInfo;
  PFND3DDDI_VALIDATEDEVICE                           pfnValidateDevice;
  PFND3DDDI_SETTEXTURESTAGESTATE                     pfnSetTextureStageState;
  PFND3DDDI_SETTEXTURE                               pfnSetTexture;
  PFND3DDDI_SETPIXELSHADER                           pfnSetPixelShader;
  PFND3DDDI_SETPIXELSHADERCONST                      pfnSetPixelShaderConst;
  PFND3DDDI_SETSTREAMSOURCEUM                        pfnSetStreamSourceUm;
  PFND3DDDI_SETINDICES                               pfnSetIndices;
  PFND3DDDI_SETINDICESUM                             pfnSetIndicesUm;
  PFND3DDDI_DRAWPRIMITIVE                            pfnDrawPrimitive;
  PFND3DDDI_DRAWINDEXEDPRIMITIVE                     pfnDrawIndexedPrimitive;
  PFND3DDDI_DRAWRECTPATCH                            pfnDrawRectPatch;
  PFND3DDDI_DRAWTRIPATCH                             pfnDrawTriPatch;
  PFND3DDDI_DRAWPRIMITIVE2                           pfnDrawPrimitive2;
  PFND3DDDI_DRAWINDEXEDPRIMITIVE2                    pfnDrawIndexedPrimitive2;
  PFND3DDDI_VOLBLT                                   pfnVolBlt;
  PFND3DDDI_BUFBLT                                   pfnBufBlt;
  PFND3DDDI_TEXBLT                                   pfnTexBlt;
  PFND3DDDI_STATESET                                 pfnStateSet;
  PFND3DDDI_SETPRIORITY                              pfnSetPriority;
  PFND3DDDI_CLEAR                                    pfnClear;
  PFND3DDDI_UPDATEPALETTE                            pfnUpdatePalette;
  PFND3DDDI_SETPALETTE                               pfnSetPalette;
  PFND3DDDI_SETVERTEXSHADERCONST                     pfnSetVertexShaderConst;
  PFND3DDDI_MULTIPLYTRANSFORM                        pfnMultiplyTransform;
  PFND3DDDI_SETTRANSFORM                             pfnSetTransform;
  PFND3DDDI_SETVIEWPORT                              pfnSetViewport;
  PFND3DDDI_SETZRANGE                                pfnSetZRange;
  PFND3DDDI_SETMATERIAL                              pfnSetMaterial;
  PFND3DDDI_SETLIGHT                                 pfnSetLight;
  PFND3DDDI_CREATELIGHT                              pfnCreateLight;
  PFND3DDDI_DESTROYLIGHT                             pfnDestroyLight;
  PFND3DDDI_SETCLIPPLANE                             pfnSetClipPlane;
  PFND3DDDI_GETINFO                                  pfnGetInfo;
  PFND3DDDI_LOCK                                     pfnLock;
  PFND3DDDI_UNLOCK                                   pfnUnlock;
  PFND3DDDI_CREATERESOURCE                           pfnCreateResource;
  PFND3DDDI_DESTROYRESOURCE                          pfnDestroyResource;
  PFND3DDDI_SETDISPLAYMODE                           pfnSetDisplayMode;
  PFND3DDDI_PRESENT                                  pfnPresent;
  PFND3DDDI_FLUSH                                    pfnFlush;
  PFND3DDDI_CREATEVERTEXSHADERFUNC                   pfnCreateVertexShaderFunc;
  PFND3DDDI_DELETEVERTEXSHADERFUNC                   pfnDeleteVertexShaderFunc;
  PFND3DDDI_SETVERTEXSHADERFUNC                      pfnSetVertexShaderFunc;
  PFND3DDDI_CREATEVERTEXSHADERDECL                   pfnCreateVertexShaderDecl;
  PFND3DDDI_DELETEVERTEXSHADERDECL                   pfnDeleteVertexShaderDecl;
  PFND3DDDI_SETVERTEXSHADERDECL                      pfnSetVertexShaderDecl;
  PFND3DDDI_SETVERTEXSHADERCONSTI                    pfnSetVertexShaderConstI;
  PFND3DDDI_SETVERTEXSHADERCONSTB                    pfnSetVertexShaderConstB;
  PFND3DDDI_SETSCISSORRECT                           pfnSetScissorRect;
  PFND3DDDI_SETSTREAMSOURCE                          pfnSetStreamSource;
  PFND3DDDI_SETSTREAMSOURCEFREQ                      pfnSetStreamSourceFreq;
  PFND3DDDI_SETCONVOLUTIONKERNELMONO                 pfnSetConvolutionKernelMono;
  PFND3DDDI_COMPOSERECTS                             pfnComposeRects;
  PFND3DDDI_BLT                                      pfnBlt;
  PFND3DDDI_COLORFILL                                pfnColorFill;
  PFND3DDDI_DEPTHFILL                                pfnDepthFill;
  PFND3DDDI_CREATEQUERY                              pfnCreateQuery;
  PFND3DDDI_DESTROYQUERY                             pfnDestroyQuery;
  PFND3DDDI_ISSUEQUERY                               pfnIssueQuery;
  PFND3DDDI_GETQUERYDATA                             pfnGetQueryData;
  PFND3DDDI_SETRENDERTARGET                          pfnSetRenderTarget;
  PFND3DDDI_SETDEPTHSTENCIL                          pfnSetDepthStencil;
  PFND3DDDI_GENERATEMIPSUBLEVELS                     pfnGenerateMipSubLevels;
  PFND3DDDI_SETPIXELSHADERCONSTI                     pfnSetPixelShaderConstI;
  PFND3DDDI_SETPIXELSHADERCONSTB                     pfnSetPixelShaderConstB;
  PFND3DDDI_CREATEPIXELSHADER                        pfnCreatePixelShader;
  PFND3DDDI_DELETEPIXELSHADER                        pfnDeletePixelShader;
  PFND3DDDI_CREATEDECODEDEVICE                       pfnCreateDecodeDevice;
  PFND3DDDI_DESTROYDECODEDEVICE                      pfnDestroyDecodeDevice;
  PFND3DDDI_SETDECODERENDERTARGET                    pfnSetDecodeRenderTarget;
  PFND3DDDI_DECODEBEGINFRAME                         pfnDecodeBeginFrame;
  PFND3DDDI_DECODEENDFRAME                           pfnDecodeEndFrame;
  PFND3DDDI_DECODEEXECUTE                            pfnDecodeExecute;
  PFND3DDDI_DECODEEXTENSIONEXECUTE                   pfnDecodeExtensionExecute;
  PFND3DDDI_CREATEVIDEOPROCESSDEVICE                 pfnCreateVideoProcessDevice;
  PFND3DDDI_DESTROYVIDEOPROCESSDEVICE                pfnDestroyVideoProcessDevice;
  PFND3DDDI_VIDEOPROCESSBEGINFRAME                   pfnVideoProcessBeginFrame;
  PFND3DDDI_VIDEOPROCESSENDFRAME                     pfnVideoProcessEndFrame;
  PFND3DDDI_SETVIDEOPROCESSRENDERTARGET              pfnSetVideoProcessRenderTarget;
  PFND3DDDI_VIDEOPROCESSBLT                          pfnVideoProcessBlt;
  PFND3DDDI_CREATEEXTENSIONDEVICE                    pfnCreateExtensionDevice;
  PFND3DDDI_DESTROYEXTENSIONDEVICE                   pfnDestroyExtensionDevice;
  PFND3DDDI_EXTENSIONEXECUTE                         pfnExtensionExecute;
  PFND3DDDI_CREATEOVERLAY                            pfnCreateOverlay;
  PFND3DDDI_UPDATEOVERLAY                            pfnUpdateOverlay;
  PFND3DDDI_FLIPOVERLAY                              pfnFlipOverlay;
  PFND3DDDI_GETOVERLAYCOLORCONTROLS                  pfnGetOverlayColorControls;
  PFND3DDDI_SETOVERLAYCOLORCONTROLS                  pfnSetOverlayColorControls;
  PFND3DDDI_DESTROYOVERLAY                           pfnDestroyOverlay;
  PFND3DDDI_DESTROYDEVICE                            pfnDestroyDevice;
  PFND3DDDI_QUERYRESOURCERESIDENCY                   pfnQueryResourceResidency;
  PFND3DDDI_OPENRESOURCE                             pfnOpenResource;
  PFND3DDDI_GETCAPTUREALLOCATIONHANDLE               pfnGetCaptureAllocationHandle;
  PFND3DDDI_CAPTURETOSYSMEM                          pfnCaptureToSysMem;
  PFND3DDDI_LOCKASYNC                                pfnLockAsync;
  PFND3DDDI_UNLOCKASYNC                              pfnUnlockAsync;
  PFND3DDDI_RENAME                                   pfnRename;
  PFND3DDDI_DXVAHD_CREATEVIDEOPROCESSOR              pfnCreateVideoProcessor;
  PFND3DDDI_DXVAHD_SETVIDEOPROCESSBLTSTATE           pfnSetVideoProcessBltState;
  PFND3DDDI_DXVAHD_GETVIDEOPROCESSBLTSTATEPRIVATE    pfnGetVideoProcessBltStatePrivate;
  PFND3DDDI_DXVAHD_SETVIDEOPROCESSSTREAMSTATE        pfnSetVideoProcessStreamState;
  PFND3DDDI_DXVAHD_GETVIDEOPROCESSSTREAMSTATEPRIVATE pfnGetVideoProcessStreamStatePrivate;
  PFND3DDDI_DXVAHD_VIDEOPROCESSBLTHD                 pfnVideoProcessBltHD;
  PFND3DDDI_DXVAHD_DESTROYVIDEOPROCESSOR             pfnDestroyVideoProcessor;
  PFND3DDDI_CREATEAUTHENTICATEDCHANNEL               pfnCreateAuthenticatedChannel;
  PFND3DDDI_AUTHENTICATEDCHANNELKEYEXCHANGE          pfnAuthenticatedChannelKeyExchange;
  PFND3DDDI_QUERYAUTHENTICATEDCHANNEL                pfnQueryAuthenticatedChannel;
  PFND3DDDI_CONFIGUREAUTHENICATEDCHANNEL             pfnConfigureAuthenticatedChannel;
  PFND3DDDI_DESTROYAUTHENTICATEDCHANNEL              pfnDestroyAuthenticatedChannel;
  PFND3DDDI_CREATECRYPTOSESSION                      pfnCreateCryptoSession;
  PFND3DDDI_CRYPTOSESSIONKEYEXCHANGE                 pfnCryptoSessionKeyExchange;
  PFND3DDDI_DESTROYCRYPTOSESSION                     pfnDestroyCryptoSession;
  PFND3DDDI_ENCRYPTIONBLT                            pfnEncryptionBlt;
  PFND3DDDI_GETPITCH                                 pfnGetPitch;
  PFND3DDDI_STARTSESSIONKEYREFRESH                   pfnStartSessionKeyRefresh;
  PFND3DDDI_FINISHSESSIONKEYREFRESH                  pfnFinishSessionKeyRefresh;
  PFND3DDDI_GETENCRYPTIONBLTKEY                      pfnGetEncryptionBltKey;
  PFND3DDDI_DECRYPTIONBLT                            pfnDecryptionBlt;
  PFND3DDDI_RESOLVESHAREDRESOURCE                    pfnResolveSharedResource;
  PFND3DDDI_VOLBLT1                                  pfnVolBlt1;
  PFND3DDDI_BUFBLT1                                  pfnBufBlt1;
  PFND3DDDI_TEXBLT1                                  pfnTexBlt1;
  PFND3DDDI_DISCARD                                  pfnDiscard;
  PFND3DDDI_OFFERRESOURCES                           pfnOfferResources;
  PFND3DDDI_RECLAIMRESOURCES                         pfnReclaimResources;
  PFND3DDDI_CHECKDIRECTFLIPSUPPORT                   pfnCheckDirectFlipSupport;
  PFND3DDDI_CREATERESOURCE2                          pfnCreateResource2;
  PFND3DDDI_CHECKMULTIPLANEOVERLAYSUPPORT            pfnCheckMultiPlaneOverlaySupport;
  PFND3DDDI_PRESENTMULTIPLANEOVERLAY                 pfnPresentMultiPlaneOverlay;
  void                                               *pfnReserved1;
  PFND3DDDI_FLUSH1                                   pfnFlush1;
  PFND3DDDI_CHECKCOUNTERINFO                         pfnCheckCounterInfo;
  PFND3DDDI_CHECKCOUNTER                             pfnCheckCounter;
  PFND3DDDI_UPDATESUBRESOURCEUP                      pfnUpdateSubresourceUP;
  PFND3DDDI_PRESENT1                                 pfnPresent1;
  PFND3DDDI_CHECKPRESENTDURATIONSUPPORT              pfnCheckPresentDurationSupport;
  PFND3DDDI_SETMARKER                                pfnSetMarker;
  PFND3DDDI_SETMARKERMODE                            pfnSetMarkerMode;
  PFND3DDDI_TRIMRESIDENCYSET                         pfnTrimResidencySet;
  PFND3DDDI_SYNCTOKEN                                pfnAcquireResource;
  PFND3DDDI_SYNCTOKEN                                pfnReleaseResource;
} D3DDDI_DEVICEFUNCS;

成员

pfnSetRenderState

指向更新呈现状态的驱动程序 SetRenderState 函数的指针。

pfnUpdateWInfo

指向驱动程序 UpdateWInfo 函数的指针,该函数更新 w 缓冲的 w 范围。

pfnValidateDevice

指向驱动程序 ValidateDevice 函数的指针,该函数返回硬件可在其中执行当前状态中指定的混合操作的通道数。

pfnSetTextureStageState

指向驱动程序 SetTextureStageState 函数的指针,该函数更新多纹理组中特定阶段纹理的状态。

pfnSetTexture

指向驱动程序 SetTexture 函数的指针,该函数将纹理设置为多纹理组中的特定阶段。

pfnSetPixelShader

指向驱动程序 SetPixelShader 函数的指针,该函数设置当前像素着色器。

pfnSetPixelShaderConst

指向驱动程序 SetPixelShaderConst 函数的指针,该函数使用浮点值设置一个或多个像素着色器常量寄存器。

pfnSetStreamSourceUm

指向驱动程序 SetStreamSourceUM 函数的指针,该函数将顶点流源绑定到用户内存缓冲区。

pfnSetIndices

指向驱动程序 SetIndices 函数的指针,该函数设置当前索引缓冲区。

pfnSetIndicesUm

指向驱动程序 SetIndicesUM 函数的指针,该函数将索引缓冲区绑定到用户内存缓冲区。

pfnDrawPrimitive

指向驱动程序 DrawPrimitive 函数的指针,该函数绘制 Microsoft Direct3D 运行时未转换顶点数据的非索引基元。

pfnDrawIndexedPrimitive

指向驱动程序 DrawIndexedPrimitive 函数的指针,该函数绘制索引基元,其中 Direct3D 运行时未转换顶点数据。

pfnDrawRectPatch

指向驱动程序 DrawRectPatch 函数的指针,该函数绘制新的或缓存的矩形修补程序或更新以前定义的修补程序的规范。

pfnDrawTriPatch

指向驱动程序 DrawTriPatch 函数的指针,该函数绘制新的或缓存的三角补丁或更新以前定义的修补程序的规范。

pfnDrawPrimitive2

指向驱动程序 DrawPrimitive2 函数的指针,该函数绘制非索引基元,Direct3D 运行时在其中转换了顶点数据。

pfnDrawIndexedPrimitive2

指向驱动程序 DrawIndexedPrimitive2 函数的指针,该函数绘制索引基元,Direct3D 运行时在其中转换了顶点数据。

pfnVolBlt

指向驱动程序 VolBlt 函数的指针,该函数执行位块传输 (bitblt) 从源卷纹理到目标卷纹理。

pfnBufBlt

指向驱动程序 BufBlt 函数的指针,该函数执行从源顶点或索引缓冲区到目标顶点或索引缓冲区的 bitblt。

pfnTexBlt

指向驱动程序 TexBlt 函数的指针,该函数执行从源纹理到目标纹理的位。

pfnStateSet

指向执行状态集操作的驱动程序 StateSet 函数的指针。

pfnSetPriority

指向驱动程序 SetPriority 函数的指针,该函数设置托管纹理的逐出内存优先级。

pfnClear

指向驱动程序 Clear 函数的指针,该函数对呈现目标、深度缓冲区或模具缓冲区执行硬件辅助清除。

pfnUpdatePalette

指向更新纹理调色板的驱动程序 UpdatePalette 函数的指针。

pfnSetPalette

指向驱动程序 SetPalette 函数的指针,该函数设置纹理的调色板。

pfnSetVertexShaderConst

指向驱动程序 SetVertexShaderConst 函数的指针,该函数使用 float 值设置一个或多个顶点着色器常量寄存器。

pfnMultiplyTransform

指向将当前转换相乘的驱动程序 MultiplyTransform 函数的指针。

pfnSetTransform

指向设置转换的驱动程序 SetTransform 函数的指针。

pfnSetViewport

指向驱动程序 SetViewport 函数的指针,该函数将视图剪辑矩形通知防护带感知驱动程序。

pfnSetZRange

指向驱动程序 SetZRange 函数的指针,该函数通知驱动程序 z 值的范围。

pfnSetMaterial

指向驱动程序 SetMaterial 函数的指针,该函数设置系统上的设备用于在呈现期间创建所需效果的材料属性。

pfnSetLight

指向驱动程序 SetLight 函数的指针,该函数设置光源的属性。

pfnCreateLight

指向创建光源的驱动程序 CreateLight 函数的指针。

pfnDestroyLight

指向停用光源的驱动程序 DestroyLight 函数的指针。

pfnSetClipPlane

指向设置剪裁平面的驱动程序 SetClipPlane 函数的指针。

pfnGetInfo

指向驱动程序 GetInfo 函数的指针,该函数检索有关设备的信息。

pfnLock

指向驱动程序 Lock 函数的指针,该函数锁定资源或资源中的图面。

pfnUnlock

指向驱动程序 Unlock 函数的指针,该函数解锁锁定之前锁定的资源或资源中的图面。

pfnCreateResource

指向创建资源的驱动程序 CreateResource 函数的指针。

pfnDestroyResource

指向驱动程序 DestroyResource 函数的指针,该函数释放 CreateResource 函数创建的资源。

pfnSetDisplayMode

指向驱动程序 SetDisplayMode 函数的指针,该函数设置要显示的表面。

pfnPresent

指向驱动程序 Present 函数的指针,该函数请求通过复制或翻转显示源图面。

pfnFlush

指向用户模式显示驱动程序 Flush 函数的指针,该函数将硬件命令缓冲区中的未完成硬件命令提交到显示微型端口驱动程序。

pfnCreateVertexShaderFunc

指向驱动程序 CreateVertexShaderFunc 函数的指针,该函数将顶点着色器代码转换为特定于硬件的格式,并将此代码与给定的着色器句柄相关联。

pfnDeleteVertexShaderFunc

指向驱动程序 DeleteVertexShaderFunc 函数的指针,该函数清理与顶点着色器代码关联的驱动程序端资源。

pfnSetVertexShaderFunc

指向驱动程序 SetVertexShaderFunc 函数的指针,该函数设置顶点着色器代码,以便所有后续绘制操作都使用该代码。

pfnCreateVertexShaderDecl

指向驱动程序 CreateVertexShaderDecl 函数的指针,该函数将顶点着色器声明转换为特定于硬件的格式,并将此声明与给定的着色器句柄相关联。

pfnDeleteVertexShaderDecl

指向驱动程序 DeleteVertexShaderDecl 函数的指针,该函数清理与顶点着色器声明关联的驱动程序端资源。

pfnSetVertexShaderDecl

指向驱动程序 SetVertexShaderDecl 函数的指针,该函数设置顶点着色器声明,以便所有后续绘制操作都使用该声明。

pfnSetVertexShaderConstI

指向驱动程序 SetVertexShaderConstI 函数的指针,该函数使用整数值设置一个或多个顶点着色器常量寄存器。

pfnSetVertexShaderConstB

指向驱动程序 SetVertexShaderConstB 函数的指针,该函数使用布尔值设置一个或多个顶点着色器常量寄存器。

pfnSetScissorRect

指向驱动程序 SetScissorRect 函数的指针,该函数标记呈现限制到的呈现目标的一部分。

pfnSetStreamSource

指向驱动程序 SetStreamSource 函数的指针,该函数将顶点流源的一部分绑定到顶点缓冲区。

pfnSetStreamSourceFreq

指向驱动程序 SetStreamSourceFreq 函数的指针,该函数设置绑定到顶点缓冲区的流源的频率除数。

pfnSetConvolutionKernelMono

指向驱动程序 SetConvolutionKernelMono 函数的指针,该函数设置单色卷积内核。

pfnComposeRects

指向构成矩形区域的驱动程序 ComposeRects 函数的指针。

pfnBlt

指向驱动程序 Blt 函数的指针,该函数将源图面的内容复制到目标图面。

pfnColorFill

指向驱动程序 ColorFill 函数的指针,该函数使用特定A8R8G8B8颜色填充图面上的矩形区域。

pfnDepthFill

指向驱动程序 DepthFill 函数的指针,该函数使用本机格式指定的像素值填充深度缓冲区。

pfnCreateQuery

指向驱动程序 CreateQuery 函数的指针,该函数为 Direct3D 运行时随后发出进行处理的查询创建驱动程序端资源。

pfnDestroyQuery

指向驱动程序 DestroyQuery 函数的指针,该函数释放 CreateQuery 函数创建的查询的资源。

pfnIssueQuery

指向驱动程序 IssueQuery 函数的指针,该函数处理 CreateQuery 函数创建的查询。

pfnGetQueryData

指向驱动程序 GetQueryData 函数的指针,该函数检索有关查询的信息。

pfnSetRenderTarget

指向驱动程序 SetRenderTarget 函数的指针,该函数在驱动程序的上下文中设置呈现目标图面。

pfnSetDepthStencil

指向驱动程序 SetDepthStencil 函数的指针,该函数在驱动程序的上下文中设置深度缓冲区。

pfnGenerateMipSubLevels

指向驱动程序 GenerateMipSubLevels 函数的指针,该函数重新生成 MIP 贴图纹理的子级别。

pfnSetPixelShaderConstI

指向驱动程序 SetPixelShaderConstI 函数的指针,该函数使用整数值设置一个或多个像素着色器常量寄存器。

pfnSetPixelShaderConstB

指向驱动程序 SetPixelShaderConstB 函数的指针,该函数使用布尔值设置一个或多个像素着色器常量寄存器。

pfnCreatePixelShader

指向驱动程序 CreatePixelShader 函数的指针,该函数将像素着色器代码转换为特定于硬件的格式,并将此代码与着色器句柄相关联。

pfnDeletePixelShader

指向驱动程序 DeletePixelShader 函数的指针,该函数清理与像素着色器代码关联的驱动程序端资源。

pfnCreateDecodeDevice

指向驱动程序 CreateDecodeDevice 函数的指针,该函数创建 Microsoft DirectX 视频加速 (VA) 从提供的参数解码设备的表示形式。

pfnDestroyDecodeDevice

指向驱动程序 DestroyDecodeDevice 函数的指针,该函数释放 DirectX VA 解码设备的资源。

pfnSetDecodeRenderTarget

指向驱动程序 SetDecodeRenderTarget 函数的指针,该函数设置解码的呈现目标。 SetDecodeRenderTarget 只能在 DecodeBeginFrame/DecodeEndFrame 块外部调用。

pfnDecodeBeginFrame

指向驱动程序 DecodeBeginFrame 函数的指针,该函数指示可以开始对帧进行解码。

pfnDecodeEndFrame

指向驱动程序 DecodeEndFrame 函数的指针,该函数指示必须完成帧解码操作。

pfnDecodeExecute

指向执行 DirectX VA 解码操作的驱动程序 DecodeExecute 函数的指针。 DecodeExecute 必须在 DecodeBeginFrame/DecodeEndFrame 块内调用。

pfnDecodeExtensionExecute

指向驱动程序 DecodeExtensionExecute 函数的指针,该函数执行非标准 DirectX VA 解码操作。 DecodeExtensionExecute 必须在 DecodeBeginFrame/DecodeEndFrame 块内调用。

pfnCreateVideoProcessDevice

指向驱动程序 CreateVideoProcessDevice 函数的指针,该函数根据提供的参数创建 DirectX VA 视频处理设备的表示形式。

pfnDestroyVideoProcessDevice

指向驱动程序 DestroyVideoProcessDevice 函数的指针,该函数释放 DirectX VA 视频处理设备的资源。

pfnVideoProcessBeginFrame

指向驱动程序 VideoProcessBeginFrame 函数的指针,该函数指示帧的视频处理可以开始。

pfnVideoProcessEndFrame

指向驱动程序 VideoProcessEndFrame 函数的指针,该函数指示必须完成视频处理操作。

pfnSetVideoProcessRenderTarget

指向驱动程序 SetVideoProcessRenderTarget 函数的指针,该函数设置视频处理的呈现目标。 SetVideoProcessRenderTarget 只能在 VideoProcessBeginFrame/VideoProcessEndFrame 块外部调用。

pfnVideoProcessBlt

指向处理 DirectX VA 视频的驱动程序 VideoProcessBlt 函数的指针。 VideoProcessBlt 必须在 VideoProcessBeginFrame/VideoProcessEndFrame 块内调用。

pfnCreateExtensionDevice

指向驱动程序 CreateExtensionDevice 函数的指针,该函数根据提供的参数创建 DirectX VA 扩展设备的表示形式。

pfnDestroyExtensionDevice

指向驱动程序 DestroyExtensionDevice 函数的指针,该函数释放 DirectX VA 扩展设备的资源。

pfnExtensionExecute

指向驱动程序 ExtensionExecute 函数的指针,该函数执行特定于给定 DirectX VA 扩展设备的操作。

pfnCreateOverlay

指向驱动程序 CreateOverlay 函数的指针,该函数分配覆盖硬件并使覆盖可见。

pfnUpdateOverlay

指向驱动程序 UpdateOverlay 函数的指针,该函数重新配置或移动正在显示的覆盖。

pfnFlipOverlay

指向驱动程序 FlipOverlay 函数的指针,该函数导致覆盖硬件开始显示新分配。

pfnGetOverlayColorControls

指向驱动程序 GetOverlayColorControls 函数的指针,该函数检索覆盖的颜色控制设置。

pfnSetOverlayColorControls

指向驱动程序 SetOverlayColorControls 函数的指针,该函数可更改覆盖层的颜色控制设置。

pfnDestroyOverlay

指向驱动程序 DestroyOverlay 函数的指针,该函数禁用覆盖硬件并释放覆盖句柄。

pfnDestroyDevice

指向驱动程序 DestroyDevice 函数的指针,该函数释放显示设备的资源。

pfnQueryResourceResidency

指向确定资源驻留的驱动程序 QueryResourceResidency 函数的指针。

pfnOpenResource

指向驱动程序 OpenResource 函数的指针,该函数通知驱动程序共享资源已打开。

pfnGetCaptureAllocationHandle

指向驱动程序 GetCaptureAllocationHandle 函数的指针,该函数将给定的捕获资源映射到分配。

pfnCaptureToSysMem

指向驱动程序 CaptureToSysMem 函数的指针,该函数将捕获缓冲区复制到视频内存图面。

pfnLockAsync

指向驱动程序 LockAsync 函数的指针,该函数锁定资源或资源中的图面。

pfnUnlockAsync

指向驱动程序 UnlockAsync 函数的指针,该函数解锁 LockAsync 函数以前锁定的资源或图面。

pfnRename

指向驱动程序 Rename 函数的指针,该函数使用新的分配重命名资源或资源中的图面。

pfnCreateVideoProcessor

指向创建视频处理器的驱动程序 CreateVideoProcessor 函数的指针。

pfnSetVideoProcessBltState

指向驱动程序 SetVideoProcessBltState 函数的指针,该函数设置视频处理器的 bitblt 的状态。

pfnGetVideoProcessBltStatePrivate

指向驱动程序 GetVideoProcessBltStatePrivate 函数的指针,该函数检索视频处理器的专用 bitblt 的状态数据。

pfnSetVideoProcessStreamState

指向驱动程序 SetVideoProcessStreamState 函数的指针,该函数设置视频处理器的流状态。

pfnGetVideoProcessStreamStatePrivate

指向驱动程序 GetVideoProcessStreamStatePrivate 函数的指针,该函数检索视频处理器的专用流状态数据。

pfnVideoProcessBltHD

指向驱动程序 VideoProcessBltHD 函数的指针,该函数处理视频输入流并组合到输出图面。

pfnDestroyVideoProcessor

指向驱动程序 DestroyVideoProcessor 函数的指针,该函数释放以前创建的视频处理器的资源。

pfnCreateAuthenticatedChannel

指向驱动程序 CreateAuthenticatedChannel 函数的指针,该函数创建 Direct3D 运行时和驱动程序可用于设置和查询保护的通道。

pfnAuthenticatedChannelKeyExchange

指向协商会话密钥的驱动程序 AuthenticatedChannelKeyExchange 函数的指针。

pfnQueryAuthenticatedChannel

指向驱动程序 QueryAuthenticatedChannel 函数的指针,该函数查询经过身份验证的通道以获取功能和状态信息。

pfnConfigureAuthenticatedChannel

指向驱动程序 ConfigureAuthenticatedChannel 函数的指针,该函数设置经过身份验证的通道中的状态。

pfnDestroyAuthenticatedChannel

指向驱动程序 DestroyAuthenticatedChannel 函数的指针,该函数释放经过身份验证的通道的资源。

pfnCreateCryptoSession

指向创建加密会话的驱动程序 CreateCryptoSession 函数的指针。

pfnCryptoSessionKeyExchange

指向驱动程序 CryptoSessionKeyExchange 函数的指针,该函数在加密会话期间执行密钥交换。

pfnDestroyCryptoSession

指向驱动程序 DestroyCryptoSession 函数的指针,该函数释放加密会话的资源。

pfnEncryptionBlt

指向执行加密 bitblt 操作的驱动程序 EncryptionBlt 函数的指针。

pfnGetPitch

指向驱动程序 GetPitch 函数的指针,该函数检索加密图面的间距。

pfnStartSessionKeyRefresh

指向驱动程序 StartSessionKeyRefresh 函数的指针,该函数将当前视频会话设置为保护模式。

pfnFinishSessionKeyRefresh

指向驱动程序 FinishSessionKeyRefresh 函数的指针,该函数将当前视频会话设置为不受保护的模式。

pfnGetEncryptionBltKey

指向驱动程序 GetEncryptionBltKey 函数的指针,该函数检索加密的 bitblt 会话的密钥。

pfnDecryptionBlt

指向将数据写入受保护图面的驱动程序 DecryptionBlt 函数的指针。

pfnResolveSharedResource

指向解析共享资源的驱动程序 ResolveSharedResource 函数的指针。

pfnVolBlt1

指向驱动程序 VolBlt1 函数的指针,该函数执行卷位块传输 (bitblt) 操作。

从 Windows 8 开始支持。

pfnBufBlt1

指向驱动程序 BufBlt1 函数的指针,该函数执行位块传输 (bitblt) 操作。

从 Windows 8 开始支持。

pfnTexBlt1

指向驱动程序 TexBlt1 函数的指针,该函数执行纹理位块传输 (bitblt) 操作。

从 Windows 8 开始支持。

pfnDiscard

指向驱动程序 Discard 函数的指针,该函数放弃 (从视频显示内存中逐出) 一组子资源。

从 Windows 8 开始支持。

pfnOfferResources

指向驱动程序 OfferResources 函数的指针,该函数请求用户模式显示驱动程序提供视频内存资源以供重复使用。

从 Windows 8 开始支持。

pfnReclaimResources

指向驱动程序 ReclaimResources 函数的指针,该函数由 Direct3D 运行时调用,用于回收以前提供以供重复使用的视频内存资源。

从 Windows 8 开始支持。

pfnCheckDirectFlipSupport

指向驱动程序 CheckDirectFlipSupport 函数的指针,该函数由 DWM 调用,用于验证用户模式驱动程序是否支持直接翻转操作。

从 Windows 8 开始支持。

pfnCreateResource2

指向创建资源的驱动程序 CreateResource2 函数的指针。

从 Windows 8 开始支持。

pfnCheckMultiPlaneOverlaySupport

指向驱动程序 pfnCheckMultiPlaneOverlaySupport (D3D) 函数的指针,Direct3D 运行时调用该函数用于检查有关多平面覆盖的硬件支持的详细信息。

从 Windows 8.1 开始支持。

pfnPresentMultiPlaneOverlay

指向驱动程序 pfnPresentMultiplaneOverlay (D3D) 函数的指针,Direct3D 运行时调用该函数以通知用户模式显示驱动程序应用程序已完成呈现,并请求驱动程序通过复制或翻转显示源图面,或者驱动程序执行颜色填充操作。

从 Windows 8.1 开始支持。

pfnReserved1

预留给系统使用。 请勿在驱动程序中使用 。

从 Windows 8.1 开始支持。

pfnFlush1

指向驱动程序 pfnFlush1 函数的指针,Direct3D 运行时调用该函数将硬件命令缓冲区中的未完成硬件命令提交到显示微型端口驱动程序。

从 Windows 8.1 开始支持。

pfnCheckCounterInfo

指向驱动程序 pfnCheckCounterInfo 函数的指针,Direct3D 运行时调用该函数以确定与操作计数器相关的全局信息。

从 Windows 8.1 开始支持。

pfnCheckCounter

指向驱动程序 pfnCheckCounter 函数的指针,Direct3D 运行时调用该函数以检索描述计数器的信息。

从 Windows 8.1 开始支持。

pfnUpdateSubresourceUP

指向驱动程序 pfnUpdateSubresourceUP 函数的指针,Direct3D 运行时调用该函数以从源系统内存区域更新目标子资源区域。

从 Windows 8.1 开始支持。

pfnPresent1

指向驱动程序 pfnPresent1 (D3D) 函数的指针,该函数通知用户模式显示驱动程序应用程序已完成呈现并释放共享资源的所有所有权,并请求驱动程序显示到目标图面。

从 Windows 8.1 开始支持。

pfnCheckPresentDurationSupport

指向驱动程序 CheckPresentDurationSupport 函数的指针,Direct3D 运行时调用该函数以请求用户模式显示驱动程序获取硬件设备功能,以便无缝切换到新的监视器刷新率。

从 Windows 8.1 开始支持。

pfnSetMarker

指向驱动程序 pfnSetMarker 函数的指针,该函数通知用户模式显示驱动程序,如果自上次调用 pfnSetMarker 以来已完成任何 GPU 工作,则必须生成新的时间戳。

从 Windows 8.1 开始支持。

pfnSetMarkerMode

指向驱动程序 pfnSetMarkerMode 函数的指针,该函数通知用户模式显示驱动程序它应支持某种类型的 Windows (ETW 事件跟踪) 标记事件。

从 Windows 8.1 开始支持。

pfnTrimResidencySet

pfnAcquireResource

pfnReleaseResource

注解

来自 D3dumddi.h 的以下代码显示了 D3DDDI_DEVICEFUNCS 成员指向的函数的函数声明。

typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETRENDERSTATE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_RENDERSTATE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_UPDATEWINFO)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_WINFO*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_VALIDATEDEVICE)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_VALIDATETEXTURESTAGESTATE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETTEXTURESTAGESTATE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_TEXTURESTAGESTATE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETTEXTURE)(
        _In_ HANDLE hDevice, _In_ UINT, _In_ HANDLE);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETPIXELSHADER)(
        _In_ HANDLE hDevice, _In_ HANDLE);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETPIXELSHADERCONST)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETPIXELSHADERCONST*, _In_ CONST FLOAT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETSTREAMSOURCEUM)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETSTREAMSOURCEUM*, _In_ CONST VOID*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETINDICES)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETINDICES*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETINDICESUM)(
        _In_ HANDLE hDevice, _In_ UINT, _In_ CONST VOID*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DRAWPRIMITIVE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DRAWPRIMITIVE*, _In_opt_ CONST UINT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DRAWINDEXEDPRIMITIVE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DRAWINDEXEDPRIMITIVE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DRAWRECTPATCH)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DRAWRECTPATCH*, _In_ CONST D3DDDIRECTPATCH_INFO*, _In_ CONST FLOAT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DRAWTRIPATCH)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DRAWTRIPATCH*, _In_ CONST D3DDDITRIPATCH_INFO*, _In_ CONST FLOAT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DRAWPRIMITIVE2)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DRAWPRIMITIVE2*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DRAWINDEXEDPRIMITIVE2)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DRAWINDEXEDPRIMITIVE2*, _In_ UINT, _In_ CONST VOID*, _In_opt_ CONST UINT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_VOLBLT)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_VOLUMEBLT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_BUFBLT)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_BUFFERBLT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_TEXBLT)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_TEXBLT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_STATESET)(
        _In_ HANDLE hDevice, _In_ D3DDDIARG_STATESET*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETPRIORITY)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETPRIORITY*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CLEAR)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_CLEAR*, _In_ UINT, _In_ CONST RECT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_UPDATEPALETTE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_UPDATEPALETTE*, _In_ CONST PALETTEENTRY*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETPALETTE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETPALETTE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETVERTEXSHADERCONST)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETVERTEXSHADERCONST*, _In_ CONST VOID*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_MULTIPLYTRANSFORM)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_MULTIPLYTRANSFORM*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETTRANSFORM)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETTRANSFORM*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETVIEWPORT)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_VIEWPORTINFO*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETZRANGE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_ZRANGE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETMATERIAL)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETMATERIAL*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETLIGHT)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETLIGHT*, _In_ CONST D3DDDI_LIGHT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATELIGHT)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_CREATELIGHT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DESTROYLIGHT)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DESTROYLIGHT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETCLIPPLANE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETCLIPPLANE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_GETINFO)(
        _In_ HANDLE hDevice, _In_ UINT, _Out_writes_bytes_(DevInfoSize)VOID*, _In_ UINT DevInfoSize);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_LOCK)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_LOCK*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_UNLOCK)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_UNLOCK*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_LOCKASYNC)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_LOCKASYNC*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_UNLOCKASYNC)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_UNLOCKASYNC*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_RENAME)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_RENAME*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATERESOURCE)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATERESOURCE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DESTROYRESOURCE)(
        _In_ HANDLE hDevice, _In_ HANDLE);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETDISPLAYMODE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETDISPLAYMODE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_PRESENT)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_PRESENT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_FLUSH)(
        _In_ HANDLE hDevice);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATEVERTEXSHADERDECL)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATEVERTEXSHADERDECL*, _In_ CONST D3DDDIVERTEXELEMENT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETVERTEXSHADERDECL)(
        _In_ HANDLE hDevice, _In_ HANDLE);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DELETEVERTEXSHADERDECL)(
        _In_ HANDLE hDevice, _In_ HANDLE);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATEVERTEXSHADERFUNC)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATEVERTEXSHADERFUNC*, _In_ CONST UINT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETVERTEXSHADERFUNC)(
        _In_ HANDLE hDevice, _In_ HANDLE);
typedef _In_ HRESULT (APIENTRY *PFND3DDDI_DELETEVERTEXSHADERFUNC)(
        _In_ HANDLE hDevice, _In_ HANDLE);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETVERTEXSHADERCONSTI)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETVERTEXSHADERCONSTI*, _In_ CONST INT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETVERTEXSHADERCONSTB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETVERTEXSHADERCONSTB*, _In_ CONST BOOL*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETSCISSORRECT)(
        _In_ HANDLE hDevice, _In_ CONST RECT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETSTREAMSOURCE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETSTREAMSOURCE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETSTREAMSOURCEFREQ)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETSTREAMSOURCEFREQ*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETCONVOLUTIONKERNELMONO)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETCONVOLUTIONKERNELMONO*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_COMPOSERECTS)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_COMPOSERECTS*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_BLT)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_BLT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_COLORFILL)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_COLORFILL*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DEPTHFILL)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DEPTHFILL*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATEQUERY)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATEQUERY*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DESTROYQUERY)(
        _In_ HANDLE hDevice, _In_ CONST HANDLE);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_ISSUEQUERY)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_ISSUEQUERY*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_GETQUERYDATA)(
        _In_ HANDLE hDevice, _Inout_ CONST D3DDDIARG_GETQUERYDATA*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETRENDERTARGET)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETRENDERTARGET*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETDEPTHSTENCIL)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETDEPTHSTENCIL*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_GENERATEMIPSUBLEVELS)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_GENERATEMIPSUBLEVELS*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETPIXELSHADERCONSTI)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETPIXELSHADERCONSTI*, _In_ CONST INT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETPIXELSHADERCONSTB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETPIXELSHADERCONSTB*, _In_ CONST BOOL*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATEPIXELSHADER)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATEPIXELSHADER*, _In_ CONST UINT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DELETEPIXELSHADER)(
        _In_ HANDLE hDevice, _In_ HANDLE);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATEDECODEDEVICE)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATEDECODEDEVICE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DESTROYDECODEDEVICE)(
        _In_ HANDLE hDevice, _In_ HANDLE);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETDECODERENDERTARGET) (
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETDECODERENDERTARGET*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DECODEBEGINFRAME) (
        _In_ HANDLE hDevice, _In_ D3DDDIARG_DECODEBEGINFRAME*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DECODEENDFRAME) (
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_DECODEENDFRAME*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DECODEEXECUTE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DECODEEXECUTE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DECODEEXTENSIONEXECUTE)(
        _In_ HANDLE hDevice, _Inout_ CONST D3DDDIARG_DECODEEXTENSIONEXECUTE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATEVIDEOPROCESSDEVICE) (
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATEVIDEOPROCESSDEVICE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DESTROYVIDEOPROCESSDEVICE) (
        _In_ HANDLE hDevice, _In_ HANDLE hVideoProcessor);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_VIDEOPROCESSBEGINFRAME) (
        _In_ HANDLE hDevice, _In_ HANDLE hVideoProcess);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_VIDEOPROCESSENDFRAME) (
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_VIDEOPROCESSENDFRAME*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETVIDEOPROCESSRENDERTARGET) (
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETVIDEOPROCESSRENDERTARGET*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_VIDEOPROCESSBLT) (
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_VIDEOPROCESSBLT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATEEXTENSIONDEVICE) (
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATEEXTENSIONDEVICE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DESTROYEXTENSIONDEVICE) (
        _In_ HANDLE hDevice, _In_ HANDLE hExtension);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_EXTENSIONEXECUTE) (
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_EXTENSIONEXECUTE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DESTROYDEVICE)(
        _In_ HANDLE hDevice);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATEOVERLAY) (
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATEOVERLAY*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_UPDATEOVERLAY) (
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_UPDATEOVERLAY*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_FLIPOVERLAY) (
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_FLIPOVERLAY*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_GETOVERLAYCOLORCONTROLS) (
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_GETOVERLAYCOLORCONTROLS*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETOVERLAYCOLORCONTROLS) (
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_SETOVERLAYCOLORCONTROLS*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DESTROYOVERLAY) (
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DESTROYOVERLAY*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_QUERYRESOURCERESIDENCY) (
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_QUERYRESOURCERESIDENCY*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_OPENRESOURCE) (
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_OPENRESOURCE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_GETCAPTUREALLOCATIONHANDLE)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_GETCAPTUREALLOCATIONHANDLE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CAPTURETOSYSMEM)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_CAPTURETOSYSMEM*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DXVAHD_CREATEVIDEOPROCESSOR)(
        _In_ HANDLE, _Inout_ D3DDDIARG_DXVAHD_CREATEVIDEOPROCESSOR*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DXVAHD_SETVIDEOPROCESSBLTSTATE)(
        _In_ HANDLE, _In_ CONST D3DDDIARG_DXVAHD_SETVIDEOPROCESSBLTSTATE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DXVAHD_GETVIDEOPROCESSBLTSTATEPRIVATE)(
        _In_ HANDLE, _Inout_ D3DDDIARG_DXVAHD_GETVIDEOPROCESSBLTSTATEPRIVATE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DXVAHD_SETVIDEOPROCESSSTREAMSTATE)(
        _In_ HANDLE, _In_ CONST D3DDDIARG_DXVAHD_SETVIDEOPROCESSSTREAMSTATE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DXVAHD_GETVIDEOPROCESSSTREAMSTATEPRIVATE)(
        _In_ HANDLE, _Inout_ D3DDDIARG_DXVAHD_GETVIDEOPROCESSSTREAMSTATEPRIVATE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DXVAHD_VIDEOPROCESSBLTHD)(
        _In_ HANDLE, _In_ CONST D3DDDIARG_DXVAHD_VIDEOPROCESSBLTHD*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DXVAHD_DESTROYVIDEOPROCESSOR)(
        _In_ HANDLE, _In_ HANDLE);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATEAUTHENTICATEDCHANNEL)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATEAUTHENTICATEDCHANNEL*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_AUTHENTICATEDCHANNELKEYEXCHANGE)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_AUTHENTICATEDCHANNELKEYEXCHANGE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_QUERYAUTHENTICATEDCHANNEL)(
        _In_ HANDLE hDevice, _Inout_ CONST D3DDDIARG_QUERYAUTHENTICATEDCHANNEL*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CONFIGUREAUTHENICATEDCHANNEL)(
        _In_ HANDLE hDevice, _Inout_ CONST D3DDDIARG_CONFIGUREAUTHENTICATEDCHANNEL*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DESTROYAUTHENTICATEDCHANNEL)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DESTROYAUTHENTICATEDCHANNEL*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATECRYPTOSESSION)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATECRYPTOSESSION*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CRYPTOSESSIONKEYEXCHANGE)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CRYPTOSESSIONKEYEXCHANGE*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DESTROYCRYPTOSESSION)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DESTROYCRYPTOSESSION*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_ENCRYPTIONBLT)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_ENCRYPTIONBLT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_GETPITCH)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_GETPITCH*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_STARTSESSIONKEYREFRESH)(
        _In_ HANDLE hDevice, _Inout_ CONST D3DDDIARG_STARTSESSIONKEYREFRESH*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_FINISHSESSIONKEYREFRESH)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_FINISHSESSIONKEYREFRESH*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_GETENCRYPTIONBLTKEY)(
        _In_ HANDLE hDevice, _Inout_ CONST D3DDDIARG_GETENCRYPTIONBLTKEY*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DECRYPTIONBLT)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DECRYPTIONBLT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_RESOLVESHAREDRESOURCE)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_RESOLVESHAREDRESOURCE*);
#if (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN8)
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_VOLBLT1)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_VOLUMEBLT1*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_BUFBLT1)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_BUFFERBLT1*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_TEXBLT1)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_TEXBLT1*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_DISCARD)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_DISCARD*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_OFFERRESOURCES)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_OFFERRESOURCES*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_RECLAIMRESOURCES)(
        _In_ HANDLE hDevice, _Inout_ CONST D3DDDIARG_RECLAIMRESOURCES*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CHECKDIRECTFLIPSUPPORT)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CHECKDIRECTFLIPSUPPORT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CREATERESOURCE2)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CREATERESOURCE2*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CHECKMULTIPLANEOVERLAYSUPPORT)(
        _In_ HANDLE hDevice, _Inout_ D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_PRESENTMULTIPLANEOVERLAY)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_PRESENTMULTIPLANEOVERLAY*);
#if (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM1_3)
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_FLUSH1)(
        _In_ HANDLE hDevice, UINT /*D3DDDI_FLUSH_FLAGS*/ FlushFlags);
typedef VOID ( APIENTRY* PFND3DDDI_CHECKCOUNTERINFO )(
        _In_ HANDLE hDevice, _Out_ D3DDDIARG_COUNTER_INFO* );
typedef _Check_return_ HRESULT ( APIENTRY* PFND3DDDI_CHECKCOUNTER )(
        _In_ HANDLE hDevice, _In_ D3DDDIQUERYTYPE, _Out_ D3DDDI_COUNTER_TYPE*, _Out_ UINT*,
        _Out_writes_to_opt_(*pNameLength, *pNameLength) LPSTR,
        _Inout_opt_ UINT* pNameLength,
        _Out_writes_to_opt_(*pUnitsLength, *pUnitsLength) LPSTR,
        _Inout_opt_ UINT* pUnitsLength,
        _Out_writes_to_opt_(*pDescriptionLength, *pDescriptionLength) LPSTR,
        _Inout_opt_ UINT* pDescriptionLength);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_UPDATESUBRESOURCEUP)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_UPDATESUBRESOURCEUP*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_PRESENT1)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDIARG_PRESENT1*);
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_CHECKPRESENTDURATIONSUPPORT)(
        _In_ HANDLE hDevice, _In_ D3DDDIARG_CHECKPRESENTDURATIONSUPPORT*);
#endif // D3D_UMD_INTERFACE_VERSION
#if (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM1_3)
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETMARKERMODE)(
        _In_ HANDLE hDevice, _In_ D3DDDI_MARKERTYPE Type, /*D3DDDI_SETMARKERMODE*/ UINT Flags );
typedef _Check_return_ HRESULT (APIENTRY *PFND3DDDI_SETMARKER)(
        _In_ HANDLE hDevice);
#endif // D3D_UMD_INTERFACE_VERSION

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的 Windows 操作系统中可用。
标头 d3dumddi.h (包括 D3dumddi.h)

另请参阅

CreateDevice

D3DDDIARG_CREATEDEVICE