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 函式的指標,該函式會從來源紋理到目的地紋理執行 bitblt。

pfnStateSet

執行狀態設定作業之驅動程式 StateSet 函式的指標。

pfnSetPriority

驅動程式 SetPriority 函式的指標,可設定 Managed 紋理的從記憶體收回優先順序。

pfnClear

驅動程式 Clear 函式的指標,會在轉譯目標、深度緩衝區或樣板緩衝區上執行硬體輔助清除。

pfnUpdatePalette

更新紋理調色盤之驅動程式 UpdatePalette 函式的指標。

pfnSetPalette

驅動程式 SetPalette 函式的指標,可設定紋理調色盤。

pfnSetVertexShaderConst

驅動程式 SetVertexShaderConst 函式的指標,可設定一或多個頂點著色器常數暫存器與浮點值。

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

執行非標準 DirectX VA 解碼作業之驅動程式 DecodeExtensionExecute 函式的指標。 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

由 Direct3D 執行時間呼叫的驅動程式 ReclaimResources 函式指標,可回收先前提供給重複使用的視訊記憶體資源。

從 Windows 8 開始支援。

pfnCheckDirectFlipSupport

DWM 所呼叫驅動程式 CheckDirectFlipSupport 函式的指標,以確認使用者模式驅動程式是否支援直接翻轉作業。

從 Windows 8 開始支援。

pfnCreateResource2

建立資源的驅動程式 CreateResource2 函式指標。

從 Windows 8 開始支援。

pfnCheckMultiPlaneOverlaySupport

驅動程式 pfnCheckMultiPlaneOverlaySupport 的指標, (Direct3D 執行時間所呼叫的 D3D) 函式,以檢查多平面重迭的硬體支援詳細資料。

從 Windows 8.1 開始支援。

pfnPresentMultiPlaneOverlay

驅動程式 pfnPresentMultiplaneOverlay 的指標 (D3D) 函式,由 Direct3D 執行時間呼叫,通知使用者模式顯示驅動程式已完成轉譯,並要求驅動程式藉由複製或翻轉或驅動程式執行色彩填滿作業來顯示來源介面。

從 Windows 8.1 開始支援。

pfnReserved1

保留供系統使用。 請勿在驅動程式中使用。

從 Windows 8.1 開始支援。

pfnFlush1

Direct3D 執行時間所呼叫之驅動程式 pfnFlush1 函式的指標,可將硬體命令緩衝區中的未處理硬體命令提交至顯示迷你埠驅動程式。

從 Windows 8.1 開始支援。

pfnCheckCounterInfo

Direct3D 執行時間所呼叫之驅動程式 pfnCheckCounterInfo 函式的指標,可判斷與操作計數器相關的全域資訊。

從 Windows 8.1 開始支援。

pfnCheckCounter

Direct3D 執行時間所呼叫之驅動程式 pfnCheckCounter 函式的指標,用來擷取描述計數器的資訊。

從 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 (include D3dumddi.h)

另請參閱

CreateDevice

D3DDDIARG_CREATEDEVICE