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 함수에 대한 포인터입니다. SetDecodeRenderTarget 은 DecodeBeginFrame/DecodeEndFrame 블록 외부에서만 호출할 수 있습니다.
pfnDecodeBeginFrame
프레임의 디코딩이 시작될 수 있음을 나타내는 드라이버 DecodeBeginFrame 함수에 대한 포인터입니다.
pfnDecodeEndFrame
프레임 디코딩 작업을 완료해야 했음을 나타내는 드라이버 DecodeEndFrame 함수에 대한 포인터입니다.
pfnDecodeExecute
DirectX VA 디코딩 작업을 수행하는 드라이버 DecodeExecute 함수에 대한 포인터입니다. DecodeExecute 는 DecodeBeginFrame/DecodeEndFrame 블록 내에서 호출되어야 합니다.
pfnDecodeExtensionExecute
비표준 DirectX VA 디코딩 작업을 수행하는 드라이버 DecodeExtensionExecute 함수에 대한 포인터입니다. DecodeExtensionExecute 는 DecodeBeginFrame/DecodeEndFrame 블록 내에서 호출되어야 합니다.
pfnCreateVideoProcessDevice
제공된 매개 변수에서 DirectX VA 비디오 처리 디바이스의 표현을 만드는 드라이버 CreateVideoProcessDevice 함수에 대한 포인터입니다.
pfnDestroyVideoProcessDevice
DirectX VA 비디오 처리 디바이스에 대한 리소스를 해제하는 Driver DestroyVideoProcessDevice 함수에 대한 포인터입니다.
pfnVideoProcessBeginFrame
프레임의 비디오 처리를 시작할 수 있음을 나타내는 VideoProcessBeginFrame 드라이버 함수에 대한 포인터입니다.
pfnVideoProcessEndFrame
비디오 처리 작업을 완료해야 했음 을 나타내는 VideoProcessEndFrame 드라이버 함수에 대한 포인터입니다.
pfnSetVideoProcessRenderTarget
비디오 처리를 위해 렌더링 대상을 설정하는 드라이버 SetVideoProcessRenderTarget 함수에 대한 포인터입니다. SetVideoProcessRenderTarget 은 VideoProcessBeginFrame/VideoProcessEndFrame 블록 외부에서만 호출할 수 있습니다.
pfnVideoProcessBlt
DirectX VA 비디오를 처리하는 드라이버 VideoProcessBlt 함수에 대한 포인터입니다. VideoProcessBlt 는 VideoProcessBeginFrame/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 포함) |