D3D11DDIARG_CREATEDEFERREDCONTEXT 구조체(d3d10umddi.h)

D3D11DDIARG_CREATEDEFERREDCONTEXT 구조체는 만들 지연된 컨텍스트를 설명합니다.

구문

typedef struct D3D11DDIARG_CREATEDEFERREDCONTEXT {
  union {
#if ...
    [in/out] D3D11DDI_DEVICEFUNCS             *p11ContextFuncs;
#else
    [in/out] struct D3D11DDI_DEVICEFUNCS      *p11ContextFuncs;
#endif
#if ...
    [in/out] D3D11_1DDI_DEVICEFUNCS           *p11_1ContextFuncs;
#else
    [in/out] struct D3D11_1DDI_DEVICEFUNCS    *p11_1ContextFuncs;
#endif
#if ...
    [in/out] D3DWDDM1_3DDI_DEVICEFUNCS        *pWDDM1_3ContextFuncs;
#else
    [in/out] struct D3DWDDM1_3DDI_DEVICEFUNCS *pWDDM1_3ContextFuncs;
#endif
#if ...
    [in/out] D3DWDDM2_0DDI_DEVICEFUNCS        *pWDDM2_0ContextFuncs;
#else
    [in/out] struct D3DWDDM2_0DDI_DEVICEFUNCS *pWDDM2_0ContextFuncs;
#endif
#if ...
             D3DWDDM2_1DDI_DEVICEFUNCS        *pWDDM2_1ContextFuncs;
#else
             struct D3DWDDM2_1DDI_DEVICEFUNCS *pWDDM2_1ContextFuncs;
#endif
#if ...
             D3DWDDM2_2DDI_DEVICEFUNCS        *pWDDM2_2ContextFuncs;
#else
             struct D3DWDDM2_2DDI_DEVICEFUNCS *pWDDM2_2ContextFuncs;
#endif
#if ...
             D3DWDDM2_6DDI_DEVICEFUNCS        *pWDDM2_6ContextFuncs;
#else
             struct D3DWDDM2_6DDI_DEVICEFUNCS *pWDDM2_6ContextFuncs;
#endif
  };
  [in]     D3D10DDI_HDEVICE      hDrvContext;
  [in]     D3D10DDI_HRTCORELAYER hRTCoreLayer;
  union {
    [in]     const D3D11DDI_CORELAYER_DEVICECALLBACKS      *p11UMCallbacks;
             const D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_0UMCallbacks;
             const D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_2UMCallbacks;
             const D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_6UMCallbacks;
  };
  [in]     UINT                  Flags;
} D3D11DDIARG_CREATEDEFERREDCONTEXT;

멤버

[in/out] p11ContextFuncs

사용자 모드 표시 드라이버가 지연된 컨텍스트에 대한 함수 테이블로 채우는 D3D11DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. Direct3D 런타임은 이러한 함수를 사용하여 사용자 모드 디스플레이 드라이버와 통신합니다.

지연된 컨텍스트에 활용되지 않는 함수 목록은 지연된 컨텍스트에 대한 DDI 함수 제외를 참조하세요.

[in/out] p11_1ContextFuncs

사용자 모드 표시 드라이버가 지연된 컨텍스트에 대한 함수 테이블로 채우는 D3D11_1DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. Direct3D 런타임은 이러한 함수를 사용하여 사용자 모드 디스플레이 드라이버와 통신합니다.

Windows 8 부터 지원합니다.

[in/out] pWDDM1_3ContextFuncs

사용자 모드 표시 드라이버가 지연된 컨텍스트에 대한 함수 테이블로 채우는 D3DWDDM1_3DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. Direct3D 런타임은 이러한 함수를 사용하여 사용자 모드 디스플레이 드라이버와 통신합니다.

Windows 8.1 부터 지원합니다.

[in/out] pWDDM2_0ContextFuncs

사용자 모드 표시 드라이버가 WDDM 2.0에 대한 디바이스 함수 테이블을 채우는 D3DWDDM2_0DDI_DEVICEFUNCS 구조에 대한 포인터입니다. Direct3D 런타임은 이러한 함수를 사용하여 사용자 모드 디스플레이 드라이버와 통신합니다.

pWDDM2_1ContextFuncs

사용자 모드 표시 드라이버가 WDDM 2.1에 대한 디바이스 함수 테이블을 채우는 D3DWDDM2_1DDI_DEVICEFUNCS 구조에 대한 포인터입니다. Direct3D 런타임은 이러한 함수를 사용하여 사용자 모드 디스플레이 드라이버와 통신합니다.

pWDDM2_2ContextFuncs

사용자 모드 표시 드라이버가 WDDM 2.2에 대한 디바이스 함수 테이블을 채우는 D3DWDDM2_2DDI_DEVICEFUNCS 구조체 에 대한 포인터입니다. Direct3D 런타임은 이러한 함수를 사용하여 사용자 모드 디스플레이 드라이버와 통신합니다.

pWDDM2_6ContextFuncs

사용자 모드 표시 드라이버가 WDDM 2.6에 대한 디바이스 함수 테이블을 채우는 D3DWDDM2_6DDI_DEVICEFUNCS 구조에 대한 포인터입니다. Direct3D 런타임은 이러한 함수를 사용하여 사용자 모드 디스플레이 드라이버와 통신합니다.

[in] hDrvContext

드라이버-프라이빗 핸들 스토리지에 대한 드라이버 컨텍스트에 대한 핸들입니다.

[in] hRTCoreLayer

드라이버가 핵심 Direct3D 11 기능에 액세스하기 위해 Direct3D 런타임으로 다시 호출할 때 사용해야 하는 핸들입니다(즉, 드라이버가 p11UMCallbacks 멤버가 지정하는 함수를 호출할 때).

[in] p11UMCallbacks

드라이버가 핵심 사용자 모드 런타임 기능에 액세스하는 데 사용할 수 있는 Direct3D 11 런타임 콜백 함수의 WDDM 2.0 이전 함수 테이블을 포함하는 D3D11DDI_CORELAYER_DEVICECALLBACKS 구조체 에 대한 포인터입니다.

pWDDM2_0UMCallbacks

드라이버가 핵심 사용자 모드 런타임 기능에 액세스하는 데 사용할 수 있는 Direct3D 11 코어 계층 디바이스 콜백 함수의 WDDM 2.0 함수 테이블을 포함하는 D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS 구조체 에 대한 포인터입니다.

pWDDM2_2UMCallbacks

드라이버가 핵심 사용자 모드 런타임 기능에 액세스하는 데 사용할 수 있는 Direct3D 11 코어 계층 디바이스 콜백 함수의 WDDM 2.2 함수 테이블을 포함하는 D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS 구조체 에 대한 포인터입니다.

pWDDM2_6UMCallbacks

드라이버가 핵심 사용자 모드 런타임 기능에 액세스하는 데 사용할 수 있는 Direct3D 11 코어 계층 디바이스 콜백 함수의 WDDM 2.6 함수 테이블을 포함하는 D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS 구조체 에 대한 포인터입니다.

[in] Flags

렌더링 디바이스를 만드는 방법을 식별하는 유효한 비트 OR D3D10DDI_CREATEDEVICE_FLAG_XXX 플래그 값입니다. Direct3D 런타임은 다음 플래그를 지원합니다.

플래그 의미
D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION(0x1) 설정하면 Direct3D 런타임에서 함수에 대한 호출을 처리할 때 사용자 모드 표시 드라이버가 여러 스레드를 동시에 실행해서는 안 됩니다. 드라이버는 일반적으로 D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION 설정되지 않는 한 여러 스레드를 시작하고 실행하여 작업을 더 빠르게 처리할 수 있습니다.
D3D11DDI_CREATEDEVICE_FLAG_SINGLETHREADED(0x10) 이 플래그는 애플리케이션이 단일 스레드임을 사용자 모드 디스플레이 드라이버에 알릴 수 있습니다. Direct3D 버전 11 런타임을 사용하면 드라이버에서 이 작업 모드를 허용하는 경우 여러 애플리케이션 스레드가 드라이버에 들어갈 수 있습니다. 그러나 모든 애플리케이션이 여러 스레드를 실행할 수 있는 것은 아닙니다. 이 플래그를 설정하면 드라이버에서 여러 스레드가 플래그를 입력하고 동시에 실행될 것으로 예상하지 않습니다. 이 플래그가 있는 경우 드라이버는 동기화를 방지할 수 있습니다.
Flags 멤버의 0xE 마스크에 설정된 플래그입니다. 이 플래그는 드라이버가 디스플레이 디바이스에 대해 지원해야 하는 3차원 파이프라인의 수준을 나타냅니다. 드라이버는 다음 상수 및 매크로를 사용하여 지원할 3차원 파이프라인 수준을 나타내는 D3D11DDI_3DPIPELINELEVEL 열거형에서 값 중 하나를 추출합니다.

Flags 멤버의 값은 D3D11DDI_3DPIPELINESUPPORT_CAPS 구조체의 Caps 멤버처럼 서식이 지정됩니다.

#define D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT (0x1)
#define D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_MASK (0x7 << D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT)
#define D3D11DDI_EXTRACT_3DPIPELINELEVEL_FROM_FLAGS( Flags ) \
    ((D3D11DDI_3DPIPELINELEVEL)(((Flags) & D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_MASK) >> \
    D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT))

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7
머리글 d3d10umddi.h(D3d10umddi.h 포함)

추가 정보

D3D11DDI_3DPIPELINELEVEL

D3D11DDI_3DPIPELINESUPPORT_CAPS

D3D11DDI_CORELAYER_DEVICECALLBACKS

D3D11DDI_DEVICEFUNCS

D3D11_1DDI_DEVICEFUNCS