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

w 버퍼링에 대한 w 범위를 업데이트하는 드라이버 UpdateWInfo 함수에 대한 포인터입니다.

pfnValidateDevice

하드웨어가 현재 상태에 지정된 혼합 작업을 수행할 수 있는 패스 수를 반환하는 드라이버 ValidateDevice 함수에 대한 포인터입니다.

pfnSetTextureStageState

다중 텍스처 그룹의 특정 단계에서 텍스처의 상태를 업데이트하는 드라이버 SetTextureStageState 함수에 대한 포인터입니다.

pfnSetTexture

다중 텍스처 그룹의 특정 단계로 텍스처를 설정하는 드라이버 SetTexture 함수에 대한 포인터입니다.

pfnSetPixelShader

현재 픽셀 셰이더를 설정하는 드라이버 SetPixelShader 함수에 대한 포인터입니다.

pfnSetPixelShaderConst

하나 이상의 픽셀 셰이더 상수 레지스터를 float 값으로 설정하는 드라이버 SetPixelShaderConst 함수에 대한 포인터입니다.

pfnSetStreamSourceUm

사용자 메모리 버퍼에 꼭짓점 스트림 원본을 바인딩하는 드라이버 SetStreamSourceUM 함수에 대한 포인터입니다.

pfnSetIndices

현재 인덱스 버퍼를 설정하는 드라이버 SetIndices 함수에 대한 포인터입니다.

pfnSetIndicesUm

인덱스 버퍼를 사용자 메모리 버퍼에 바인딩하는 드라이버 SetIndicesUM 함수에 대한 포인터입니다.

pfnDrawPrimitive

Microsoft Direct3D 런타임이 꼭짓점 데이터를 변환하지 않은 인덱싱되지 않은 기본 형식을 그리는 드라이버 DrawPrimitive 함수에 대한 포인터입니다.

pfnDrawIndexedPrimitive

Direct3D 런타임이 꼭짓점 데이터를 변환하지 않은 인덱싱된 기본 형식을 그리는 드라이버 DrawIndexedPrimitive 함수에 대한 포인터입니다.

pfnDrawRectPatch

새 또는 캐시된 사각형 패치를 그리거나 이전에 정의된 패치의 사양을 업데이트하는 드라이버 DrawRectPatch 함수에 대한 포인터입니다.

pfnDrawTriPatch

새 또는 캐시된 삼각형 패치를 그리거나 이전에 정의된 패치의 사양을 업데이트하는 드라이버 DrawTriPatch 함수에 대한 포인터입니다.

pfnDrawPrimitive2

Direct3D 런타임이 꼭짓점 데이터를 변환한 인덱싱되지 않은 기본 형식을 그리는 드라이버 DrawPrimitive2 함수에 대한 포인터입니다.

pfnDrawIndexedPrimitive2

Direct3D 런타임이 꼭짓점 데이터를 변환한 인덱싱된 기본 형식을 그리는 드라이버 DrawIndexedPrimitive2 함수에 대한 포인터입니다.

pfnVolBlt

원본 볼륨 텍스처에서 대상 볼륨 텍스처로 비트 블록 전송(비트블렛)을 수행하는 드라이버 VolBlt 함수에 대한 포인터입니다.

pfnBufBlt

원본 꼭짓점 또는 인덱스 버퍼에서 대상 꼭짓점 또는 인덱스 버퍼로 비트블렛을 수행하는 드라이버 BufBlt 함수에 대한 포인터입니다.

pfnTexBlt

원본 텍스처에서 대상 텍스처로 비트블렛을 수행하는 드라이버 TexBlt 함수에 대한 포인터입니다.

pfnStateSet

상태 집합 작업을 수행하는 드라이버 StateSet 함수에 대한 포인터입니다.

pfnSetPriority

관리되는 텍스처에 대한 메모리에서 제거 우선 순위를 설정하는 드라이버 SetPriority 함수에 대한 포인터입니다.

pfnClear

렌더링 대상, 깊이 버퍼 또는 스텐실 버퍼에서 하드웨어 지원 지우기를 수행하는 드라이버 Clear 함수에 대한 포인터입니다.

pfnUpdatePalette

텍스처 팔레트를 업데이트하는 드라이버 UpdatePalette 함수에 대한 포인터입니다.

pfnSetPalette

텍스처에 대한 팔레트를 설정하는 드라이버 SetPalette 함수에 대한 포인터입니다.

pfnSetVertexShaderConst

하나 이상의 꼭짓점 셰이더 상수 레지스터를 float 값으로 설정하는 드라이버 SetVertexShaderConst 함수에 대한 포인터입니다.

pfnMultiplyTransform

현재 변환을 곱하는 드라이버 MultiplyTransform 함수에 대한 포인터입니다.

pfnSetTransform

변환을 설정하는 드라이버 SetTransform 함수에 대한 포인터입니다.

pfnSetViewport

보기 클리핑 사각형의 가드 밴드 인식 드라이버를 알려주는 드라이버 SetViewport 함수에 대한 포인터입니다.

pfnSetZRange

드라이버 SetZRange 함수에 대한 포인터로, 드라이버에 z 값의 범위를 알릴 수 있습니다.

pfnSetMaterial

시스템의 디바이스가 렌더링 중에 필요한 효과를 만드는 데 사용하는 재질 속성을 설정하는 드라이버 SetMaterial 함수에 대한 포인터입니다.

pfnSetLight

광원에 대한 속성을 설정하는 드라이버 SetLight 함수에 대한 포인터입니다.

pfnCreateLight

광원을 만드는 드라이버 CreateLight 함수에 대한 포인터입니다.

pfnDestroyLight

광원을 비활성화하는 Driver DestroyLight 함수에 대한 포인터입니다.

pfnSetClipPlane

클립 평면을 설정하는 드라이버 SetClipPlane 함수에 대한 포인터입니다.

pfnGetInfo

디바이스에 대한 정보를 검색하는 드라이버 GetInfo 함수에 대한 포인터입니다.

pfnLock

리소스 또는 리소스 내의 표면을 잠그는 드라이버 Lock 함수에 대한 포인터입니다.

pfnUnlock

Lock 함수가 이전에 잠근 리소스 또는 리소스 내의 표면을 잠금 해제하는 드라이버 Unlock 함수에 대한 포인터입니다.

pfnCreateResource

리소스를 만드는 드라이버 CreateResource 함수에 대한 포인터입니다.

pfnDestroyResource

CreateResource 함수가 만든 리소스를 해제하는 Driver DestroyResource 함수에 대한 포인터입니다.

pfnSetDisplayMode

표시할 표면을 설정하는 드라이버 SetDisplayMode 함수에 대한 포인터입니다.

pfnPresent

복사 또는 대칭 이동으로 원본 표면을 표시하도록 요청하는 드라이버 Present 함수에 대한 포인터입니다.

pfnFlush

하드웨어 명령 버퍼에 있는 미해결 하드웨어 명령을 디스플레이 미니포트 드라이버에 제출하는 사용자 모드 디스플레이 드라이버 Flush 함수에 대한 포인터입니다.

pfnCreateVertexShaderFunc

꼭짓점 셰이더 코드를 하드웨어별 형식으로 변환하고 이 코드를 지정된 셰이더 핸들과 연결하는 드라이버 CreateVertexShaderFunc 함수에 대한 포인터입니다.

pfnDeleteVertexShaderFunc

꼭짓점 셰이더 코드와 연결된 드라이버 쪽 리소스를 정리하는 Driver DeleteVertexShaderFunc 함수에 대한 포인터입니다.

pfnSetVertexShaderFunc

모든 후속 그리기 작업에서 해당 코드를 사용하도록 꼭짓점 셰이더 코드를 설정하는 드라이버 SetVertexShaderFunc 함수에 대한 포인터입니다.

pfnCreateVertexShaderDecl

꼭짓점 셰이더 선언을 하드웨어별 형식으로 변환하고 이 선언을 지정된 셰이더 핸들과 연결하는 드라이버 CreateVertexShaderDecl 함수에 대한 포인터입니다.

pfnDeleteVertexShaderDecl

꼭짓점 셰이더 선언과 연결된 드라이버 쪽 리소스를 정리하는 드라이버 DeleteVertexShaderDecl 함수에 대한 포인터입니다.

pfnSetVertexShaderDecl

모든 후속 그리기 작업에서 해당 선언을 사용하도록 꼭짓점 셰이더 선언을 설정하는 드라이버 SetVertexShaderDecl 함수에 대한 포인터입니다.

pfnSetVertexShaderConstI

하나 이상의 꼭짓점 셰이더 상수 레지스터를 정수 값으로 설정하는 드라이버 SetVertexShaderConstI 함수에 대한 포인터입니다.

pfnSetVertexShaderConstB

하나 이상의 꼭짓점 셰이더 상수 레지스터를 부울 값으로 설정하는 드라이버 SetVertexShaderConstB 함수에 대한 포인터입니다.

pfnSetScissorRect

렌더링이 제한된 렌더링 대상의 일부를 표시하는 드라이버 SetScissorRect 함수에 대한 포인터입니다.

pfnSetStreamSource

꼭짓점 스트림 원본의 일부를 꼭짓점 버퍼에 바인딩하는 드라이버 SetStreamSource 함수에 대한 포인터입니다.

pfnSetStreamSourceFreq

꼭짓점 버퍼에 바인딩된 스트림 원본의 빈도를 설정하는 드라이버 SetStreamSourceFreq 함수에 대한 포인터입니다.

pfnSetConvolutionKernelMono

모노크롬 컨볼루션 커널을 설정하는 드라이버 SetConvolutionKernelMono 함수에 대한 포인터입니다.

pfnComposeRects

사각형 영역을 구성하는 Driver ComposeRects 함수에 대한 포인터입니다.

pfnBlt

원본 표면의 내용을 대상 표면에 복사하는 드라이버 Blt 함수에 대한 포인터입니다.

pfnColorFill

표면의 사각형 영역을 특정 A8R8G8B8 색으로 채우는 드라이버 ColorFill 함수에 대한 포인터입니다.

pfnDepthFill

깊이 버퍼를 네이티브 형식으로 지정된 픽셀 값으로 채우는 드라이버 DepthFill 함수에 대한 포인터입니다.

pfnCreateQuery

Direct3D 런타임이 이후에 처리를 위해 발급하는 쿼리에 대한 드라이버 쪽 리소스를 만드는 드라이버 CreateQuery 함수에 대한 포인터입니다.

pfnDestroyQuery

CreateQuery 함수가 만든 쿼리에 대한 리소스를 해제하는 Driver DestroyQuery 함수에 대한 포인터입니다.

pfnIssueQuery

CreateQuery 함수가 만든 쿼리를 처리하는 드라이버 IssueQuery 함수에 대한 포인터입니다.

pfnGetQueryData

쿼리에 대한 정보를 검색하는 드라이버 GetQueryData 함수에 대한 포인터입니다.

pfnSetRenderTarget

드라이버 컨텍스트에서 렌더링 대상 표면을 설정하는 드라이버 SetRenderTarget 함수에 대한 포인터입니다.

pfnSetDepthStencil

드라이버 컨텍스트에서 깊이 버퍼를 설정하는 드라이버 SetDepthStencil 함수에 대한 포인터입니다.

pfnGenerateMipSubLevels

MIP 맵 텍스처의 하위 속도를 다시 생성하는 드라이버 GenerateMipSubLevels 함수에 대한 포인터입니다.

pfnSetPixelShaderConstI

정수 값으로 하나 이상의 픽셀 셰이더 상수 레지스터를 설정하는 드라이버 SetPixelShaderConstI 함수에 대한 포인터입니다.

pfnSetPixelShaderConstB

하나 이상의 픽셀 셰이더 상수 레지스터를 부울 값으로 설정하는 드라이버 SetPixelShaderConstB 함수에 대한 포인터입니다.

pfnCreatePixelShader

픽셀 셰이더 코드를 하드웨어별 형식으로 변환하고 이 코드를 셰이더 핸들과 연결하는 드라이버 CreatePixelShader 함수에 대한 포인터입니다.

pfnDeletePixelShader

픽셀 셰이더 코드와 연결된 드라이버 쪽 리소스를 정리하는 드라이버 DeletePixelShader 함수에 대한 포인터입니다.

pfnCreateDecodeDevice

제공된 매개 변수에서 Microsoft DirectX VA(비디오 가속) 디코딩 디바이스의 표현을 만드는 드라이버 CreateDecodeDevice 함수에 대한 포인터입니다.

pfnDestroyDecodeDevice

DirectX VA 디코딩 디바이스에 대한 리소스를 해제하는 Driver DestroyDecodeDevice 함수에 대한 포인터입니다.

pfnSetDecodeRenderTarget

디코딩을 위해 렌더링 대상을 설정하는 드라이버 SetDecodeRenderTarget 함수에 대한 포인터입니다. SetDecodeRenderTargetDecodeBeginFrame/DecodeEndFrame 블록 외부에서만 호출할 수 있습니다.

pfnDecodeBeginFrame

프레임의 디코딩이 시작될 수 있음을 나타내는 드라이버 DecodeBeginFrame 함수에 대한 포인터입니다.

pfnDecodeEndFrame

프레임 디코딩 작업을 완료해야 했음을 나타내는 드라이버 DecodeEndFrame 함수에 대한 포인터입니다.

pfnDecodeExecute

DirectX VA 디코딩 작업을 수행하는 드라이버 DecodeExecute 함수에 대한 포인터입니다. DecodeExecuteDecodeBeginFrame/DecodeEndFrame 블록 내에서 호출되어야 합니다.

pfnDecodeExtensionExecute

비표준 DirectX VA 디코딩 작업을 수행하는 드라이버 DecodeExtensionExecute 함수에 대한 포인터입니다. DecodeExtensionExecuteDecodeBeginFrame/DecodeEndFrame 블록 내에서 호출되어야 합니다.

pfnCreateVideoProcessDevice

제공된 매개 변수에서 DirectX VA 비디오 처리 디바이스의 표현을 만드는 드라이버 CreateVideoProcessDevice 함수에 대한 포인터입니다.

pfnDestroyVideoProcessDevice

DirectX VA 비디오 처리 디바이스에 대한 리소스를 해제하는 Driver DestroyVideoProcessDevice 함수에 대한 포인터입니다.

pfnVideoProcessBeginFrame

프레임의 비디오 처리를 시작할 수 있음을 나타내는 VideoProcessBeginFrame 드라이버 함수에 대한 포인터입니다.

pfnVideoProcessEndFrame

비디오 처리 작업을 완료해야 했음 을 나타내는 VideoProcessEndFrame 드라이버 함수에 대한 포인터입니다.

pfnSetVideoProcessRenderTarget

비디오 처리를 위해 렌더링 대상을 설정하는 드라이버 SetVideoProcessRenderTarget 함수에 대한 포인터입니다. SetVideoProcessRenderTargetVideoProcessBeginFrame/VideoProcessEndFrame 블록 외부에서만 호출할 수 있습니다.

pfnVideoProcessBlt

DirectX VA 비디오를 처리하는 드라이버 VideoProcessBlt 함수에 대한 포인터입니다. VideoProcessBltVideoProcessBeginFrame/VideoProcessEndFrame 블록 내에서 호출되어야 합니다.

pfnCreateExtensionDevice

제공된 매개 변수에서 DirectX VA 확장 디바이스의 표현을 만드는 드라이버 CreateExtensionDevice 함수에 대한 포인터입니다.

pfnDestroyExtensionDevice

DirectX VA 확장 디바이스에 대한 리소스를 해제하는 Driver DestroyExtensionDevice 함수에 대한 포인터입니다.

pfnExtensionExecute

지정된 DirectX VA 확장 디바이스와 관련된 작업을 수행하는 드라이버 ExtensionExecute 함수에 대한 포인터입니다.

pfnCreateOverlay

오버레이 하드웨어를 할당하고 오버레이를 표시하는 드라이버 CreateOverlay 함수에 대한 포인터입니다.

pfnUpdateOverlay

표시되는 오버레이를 다시 구성하거나 이동하는 드라이버 UpdateOverlay 함수에 대한 포인터입니다.

pfnFlipOverlay

오버레이 하드웨어가 새 할당을 표시하기 시작하도록 하는 드라이버 FlipOverlay 함수에 대한 포인터입니다.

pfnGetOverlayColorControls

오버레이에 대한 색 제어 설정을 검색하는 드라이버 GetOverlayColorControls 함수에 대한 포인터입니다.

pfnSetOverlayColorControls

오버레이에 대한 색 제어 설정을 변경하는 드라이버 SetOverlayColorControls 함수에 대한 포인터입니다.

pfnDestroyOverlay

오버레이 하드웨어를 사용하지 않도록 설정하고 오버레이 핸들을 해제하는 Driver DestroyOverlay 함수에 대한 포인터입니다.

pfnDestroyDevice

디스플레이 디바이스에 대한 리소스를 해제하는 Driver DestroyDevice 함수에 대한 포인터입니다.

pfnQueryResourceResidency

리소스의 상주를 결정하는 드라이버 QueryResourceResidency 함수에 대한 포인터입니다.

pfnOpenResource

공유 리소스가 열려 있음을 드라이버에 알리는 드라이버 OpenResource 함수에 대한 포인터입니다.

pfnGetCaptureAllocationHandle

지정된 캡처 리소스를 할당에 매핑하는 드라이버 GetCaptureAllocationHandle 함수에 대한 포인터입니다.

pfnCaptureToSysMem

캡처 버퍼를 비디오 메모리 화면에 복사하는 드라이버 CaptureToSysMem 함수에 대한 포인터입니다.

pfnLockAsync

리소스 또는 리소스 내의 표면을 잠그는 드라이버 LockAsync 함수에 대한 포인터입니다.

pfnUnlockAsync

LockAsync 함수가 이전에 잠근 리소스 또는 리소스 내의 표면을 잠금 해제하는 드라이버 UnlockAsync 함수에 대한 포인터입니다.

pfnRename

새 할당, 리소스 또는 리소스 내의 표면을 사용하여 이름을 바꾸는 드라이버 Rename 함수에 대한 포인터입니다.

pfnCreateVideoProcessor

비디오 프로세서를 만드는 드라이버 CreateVideoProcessor 함수에 대한 포인터입니다.

pfnSetVideoProcessBltState

비디오 프로세서에 대한 비트블릿의 상태를 설정하는 드라이버 SetVideoProcessBltState 함수에 대한 포인터입니다.

pfnGetVideoProcessBltStatePrivate

비디오 프로세서에 대한 프라이빗 비트블릿의 상태 데이터를 검색하는 드라이버 GetVideoProcessBltStatePrivate 함수에 대한 포인터입니다.

pfnSetVideoProcessStreamState

비디오 프로세서의 스트림 상태를 설정하는 드라이버 SetVideoProcessStreamState 함수에 대한 포인터입니다.

pfnGetVideoProcessStreamStatePrivate

비디오 프로세서에 대한 프라이빗 스트림 상태 데이터를 검색하는 드라이버 GetVideoProcessStreamStatePrivate 함수에 대한 포인터입니다.

pfnVideoProcessBltHD

비디오 입력 스트림을 처리하고 출력 화면으로 구성하는 드라이버 VideoProcessBltHD 함수에 대한 포인터입니다.

pfnDestroyVideoProcessor

이전에 만든 비디오 프로세서에 대한 리소스를 해제하는 Driver DestroyVideoProcessor 함수에 대한 포인터입니다.

pfnCreateAuthenticatedChannel

Direct3D 런타임과 드라이버가 보호를 설정하고 쿼리하는 데 사용할 수 있는 채널을 만드는 드라이버 CreateAuthenticatedChannel 함수에 대한 포인터입니다.

pfnAuthenticatedChannelKeyExchange

세션 키를 협상하는 드라이버 AuthenticatedChannelKeyExchange 함수에 대한 포인터입니다.

pfnQueryAuthenticatedChannel

인증된 채널에서 기능 및 상태 정보를 쿼리하는 QueryAuthenticatedChannel 드라이버에 대한 포인터입니다.

pfnConfigureAuthenticatedChannel

인증된 채널 내에서 상태를 설정하는 드라이버 ConfigureAuthenticatedChannel 함수에 대한 포인터입니다.

pfnDestroyAuthenticatedChannel

인증된 채널에 대한 리소스를 해제하는 Driver DestroyAuthenticatedChannel 함수에 대한 포인터입니다.

pfnCreateCryptoSession

암호화 세션을 만드는 드라이버 CreateCryptoSession 함수에 대한 포인터입니다.

pfnCryptoSessionKeyExchange

암호화 세션 중에 키 교환을 수행하는 드라이버 CryptoSessionKeyExchange 함수에 대한 포인터입니다.

pfnDestroyCryptoSession

암호화 세션에 대한 리소스를 해제하는 Driver DestroyCryptoSession 함수에 대한 포인터입니다.

pfnEncryptionBlt

암호화된 비트blt 작업을 수행하는 드라이버 EncryptionBlt 함수에 대한 포인터입니다.

pfnGetPitch

암호화된 표면의 피치를 검색하는 드라이버 GetPitch 함수에 대한 포인터입니다.

pfnStartSessionKeyRefresh

현재 비디오 세션을 보호 모드로 설정하는 드라이버 StartSessionKeyRefresh 함수에 대한 포인터입니다.

pfnFinishSessionKeyRefresh

현재 비디오 세션을 보호되지 않는 모드로 설정하는 드라이버 FinishSessionKeyRefresh 함수에 대한 포인터입니다.

pfnGetEncryptionBltKey

암호화된 비트blt 세션의 키를 검색하는 드라이버 GetEncryptionBltKey 함수에 대한 포인터입니다.

pfnDecryptionBlt

보호된 표면에 데이터를 쓰는 드라이버 DecryptionBlt 함수에 대한 포인터입니다.

pfnResolveSharedResource

공유 리소스를 확인하는 드라이버 ResolveSharedResource 함수에 대한 포인터입니다.

pfnVolBlt1

볼륨 비트 블록 전송(bitblt) 작업을 수행하는 드라이버 VolBlt1 함수에 대한 포인터입니다.

Windows 8 부터 지원합니다.

pfnBufBlt1

비트 블록 전송(bitblt) 작업을 수행하는 드라이버 BufBlt1 함수에 대한 포인터입니다.

Windows 8 부터 지원합니다.

pfnTexBlt1

텍스처 비트 블록 전송(bitblt) 작업을 수행하는 드라이버 TexBlt1 함수에 대한 포인터입니다.

Windows 8 부터 지원합니다.

pfnDiscard

비디오 디스플레이 메모리에서 하위 리소스 집합을 삭제(제거)하는 드라이버 Discard 함수에 대한 포인터입니다.

Windows 8 부터 지원합니다.

pfnOfferResources

사용자 모드 표시 드라이버가 재사용을 위해 비디오 메모리 리소스를 제공하도록 요청하는 Driver OfferResources 함수에 대한 포인터입니다.

Windows 8 부터 지원합니다.

pfnReclaimResources

Direct3D 런타임에서 이전에 재사용을 위해 제공한 비디오 메모리 리소스를 회수하기 위해 호출된 드라이버 ReclaimResources 함수에 대한 포인터입니다.

Windows 8 부터 지원합니다.

pfnCheckDirectFlipSupport

사용자 모드 드라이버가 직접 대칭 이동 작업을 지원하는지 확인하기 위해 DWM에서 호출하는 드라이버 CheckDirectFlipSupport 함수에 대한 포인터입니다.

Windows 8 부터 지원합니다.

pfnCreateResource2

리소스를 만드는 드라이버 CreateResource2 함수에 대한 포인터입니다.

Windows 8 부터 지원합니다.

pfnCheckMultiPlaneOverlaySupport

Direct3D 런타임에서 다중 평면 오버레이에 대한 하드웨어 지원에 대한 세부 정보를 검사 위해 호출되는 드라이버 pfnCheckMultiPlaneOverlaySupport(D3D) 함수에 대한 포인터입니다.

Windows 8.1 부터 지원합니다.

pfnPresentMultiPlaneOverlay

Direct3D 런타임에서 호출한 드라이버 pfnPresentMultiplaneOverlay(D3D) 함수에 대한 포인터로, 애플리케이션 렌더링이 완료되었음을 사용자 모드 표시 드라이버에 알리고 드라이버가 복사 또는 대칭 이동으로 원본 화면을 표시하도록 요청하거나 드라이버가 색 채우기 작업을 수행하도록 요청합니다.

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

원본 시스템 메모리 영역에서 대상 하위 리소스 지역을 업데이트하기 위해 Direct3D 런타임에서 호출하는 드라이버 pfnUpdateSubresourceUP 함수에 대한 포인터입니다.

Windows 8.1 부터 지원합니다.

pfnPresent1

드라이버 pfnPresent1(D3D) 함수에 대한 포인터로, 애플리케이션 렌더링이 완료되고 공유 리소스의 모든 소유권이 해제되고 드라이버가 대상 화면에 표시되도록 요청하는 사용자 모드 표시 드라이버에 알립니다.

Windows 8.1 부터 지원합니다.

pfnCheckPresentDurationSupport

Direct3D 런타임에서 호출한 드라이버 CheckPresentDurationSupport 함수에 대한 포인터로, 사용자 모드 디스플레이 드라이버가 새 모니터 새로 고침 빈도로 원활하게 전환하기 위한 하드웨어 디바이스 기능을 얻도록 요청합니다.

Windows 8.1 부터 지원합니다.

pfnSetMarker

pfnSetMarker에 대한 마지막 호출 이후 GPU 작업이 완료된 경우 사용자 모드 표시 드라이버에 새 타임스탬프를 생성해야 한다는 것을 알리는 드라이버 pfnSetMarker 함수에 대한 포인터입니다.

Windows 8.1 부터 지원합니다.

pfnSetMarkerMode

사용자 모드 표시 드라이버에 ETW(Windows용 이벤트 추적) 마커 이벤트 유형을 지원해야 한다는 것을 알린 드라이버 pfnSetMarkerMode 함수에 대한 포인터입니다.

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