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) |