D3D10DDIARG_CREATEDEVICE 구조체(d3d10umddi.h)

D3D10DDIARG_CREATEDEVICE 구조는 만들 디스플레이 디바이스에 대해 설명합니다.

구문

typedef struct D3D10DDIARG_CREATEDEVICE {
  D3D10DDI_HRTDEVICE            hRTDevice;
  UINT                          Interface;
  UINT                          Version;
  const D3DDDI_DEVICECALLBACKS  *pKTCallbacks;
  union {
    D3D10DDI_DEVICEFUNCS      *pDeviceFuncs;
    D3D10_1DDI_DEVICEFUNCS    *p10_1DeviceFuncs;
    D3D11DDI_DEVICEFUNCS      *p11DeviceFuncs;
    D3D11_1DDI_DEVICEFUNCS    *p11_1DeviceFuncs;
    D3DWDDM1_3DDI_DEVICEFUNCS *pWDDM1_3DeviceFuncs;
    D3DWDDM2_0DDI_DEVICEFUNCS *pWDDM2_0DeviceFuncs;
    D3DWDDM2_1DDI_DEVICEFUNCS *pWDDM2_1DeviceFuncs;
    D3DWDDM2_2DDI_DEVICEFUNCS *pWDDM2_2DeviceFuncs;
    D3DWDDM2_6DDI_DEVICEFUNCS *pWDDM2_6DeviceFuncs;
  };
  D3D10DDI_HDEVICE              hDrvDevice;
  DXGI_DDI_BASE_ARGS            DXGIBaseDDI;
  D3D10DDI_HRTCORELAYER         hRTCoreLayer;
  union {
    const D3D10DDI_CORELAYER_DEVICECALLBACKS      *pUMCallbacks;
    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;
  };
  UINT                          Flags;
  PFND3D10DDI_RETRIEVESUBOBJECT *ppfnRetrieveSubObject;
} D3D10DDIARG_CREATEDEVICE;

멤버

hRTDevice

[in] 드라이버가 Direct3D 런타임으로 다시 호출할 때 사용해야 하는 핸들(즉, 드라이버가 pKTCallbacks 멤버가 지정하는 함수를 호출할 때)을 지정하는 디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.

Interface

[in] Direct3D 인터페이스 버전입니다. 상위 16비트에서는 주 릴리스 번호(예: 10, 11 등)를 저장합니다. 하위 16비트에서는 부 릴리스 번호(예: 0, 1, 2 등)를 저장합니다. 인터페이스 변경 내용이 릴리스되면 부 릴리스 번호가 증가합니다.

Version

[in] 드라이버가 Direct3D 런타임이 빌드된 시기를 식별하는 데 사용할 수 있는 숫자입니다. 높은 16비트 는 빌드 번호를 나타냅니다. 낮은 16비트 는 수정 번호를 나타냅니다.

드라이버는 높은 16비트만 모니터링하는 데 필요합니다. 드라이버는 전달된 런타임 빌드 버전이 드라이버의 현재 빌드 버전보다 크거나 같은지 확인해야 합니다. 빌드 버전에서 전달된 가 호환되지 않는 경우 드라이버는 CreateDevice(D3D10) 함수에서 오류를 반환해야 합니다.

pKTCallbacks

[in] 드라이버 가 커 널 서비스에 액세스하는 데 사용할 수 있는 Direct3D 런타임 콜백 함수 테이블을 포함하는 D3DDDI_DEVICECALLBACKS 구조체에 대한 포인터입니다.

pDeviceFuncs

[in/out] 사용자 모드 표시 드라이버가 해당 함수의 테이블로 채우는 D3D10DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. Direct3D 런타임은 이러한 함수를 사용하여 사용자 모드 표시 드라이버와 통신합니다.

인터페이스 멤버의 값이 D3D10_0_DDI_INTERFACE_VERSION 경우 드라이버는 제공된 D3D10DDI_DEVICEFUNCS 구조에서 Direct3D 버전 10.0 함수를 채워야 합니다.

p10_1DeviceFuncs

[in/out] 사용자 모드 표시 드라이버가 해당 함수의 테이블로 채우는 D3D10_1DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. Direct3D 런타임 버전 10.1은 이러한 함수를 사용하여 사용자 모드 표시 드라이버와 통신합니다.

인터페이스 멤버의 값이 D3D10_1_DDI_INTERFACE_VERSION 경우 드라이버는 제공된 D3D10_1DDI_DEVICEFUNCS 구조에서 Direct3D 버전 10.1 함수를 채워야 합니다.

SP1 및 Windows Server 2008을 사용하여 Windows Vista부터 지원됩니다.

p11DeviceFuncs

[in/out] 사용자 모드 표시 드라이버가 해당 함수의 테이블로 채우는 D3D11DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. Direct3D 런타임 버전 11은 이러한 함수를 사용하여 사용자 모드 표시 드라이버와 통신합니다.

인터페이스 멤버의 값이 D3D11_0_DDI_INTERFACE_VERSION 경우 드라이버는 제공된 D3D11DDI_DEVICEFUNCS 구조에서 Direct3D 버전 11.0 함수를 채워야 합니다.

Windows 7부터 지원됩니다.

p11_1DeviceFuncs

[in/out] 사용자 모드 표시 드라이버가 해당 함수의 테이블로 채우는 D3D11_1DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. 버전 11.1부터 Direct3D 런타임은 이러한 함수를 사용하여 사용자 모드 표시 드라이버와 통신합니다.

인터페이스 멤버의 값이 D3D11_1_DDI_INTERFACE_VERSION 경우 드라이버는 제공된 D3D11_1DDI_DEVICEFUNCS 구조에서 Direct3D 버전 11.1 함수를 채워야 합니다.

Windows 8 부터 지원합니다.

pWDDM1_3DeviceFuncs

[in/out] 사용자 모드 표시 드라이버가 해당 함수의 테이블로 채우는 D3DWDDM1_3DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. Direct3D 런타임 버전 11.2는 이러한 함수를 사용하여 사용자 모드 표시 드라이버와 통신합니다.

인터페이스 멤버의 값이 D3DWDDM1_3_DDI_INTERFACE_VERSION 경우 드라이버는 제공된 D3DWDDM1_3DDI_DEVICEFUNCS 구조에서 Direct3D 버전 11.2 함수를 채워야 합니다.

Windows 8.1 부터 지원합니다.

pWDDM2_0DeviceFuncs

[in/out] 사용자 모드 표시 드라이버가 해당 함수의 테이블로 채우는 D3DWDDM2_0DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. 인터페이스 멤버의 값이 D3DWDDM2_0_DDI_INTERFACE_VERSION 경우 드라이버는 제공된 구조에서 Direct3D 함수를 채워야 합니다.

pWDDM2_1DeviceFuncs

[in/out] 사용자 모드 표시 드라이버가 해당 함수의 테이블로 채우는 D3DWDDM2_1DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. 인터페이스 멤버의 값이 D3DWDDM2_0_DDI_INTERFACE_VERSION 경우 드라이버는 제공된 구조에서 Direct3D 함수를 채워야 합니다.

pWDDM2_2DeviceFuncs

[in/out] 사용자 모드 표시 드라이버가 해당 함수의 테이블로 채우는 D3DWDDM2_2DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. 인터페이스 멤버의 값이 D3DWDDM2_0_DDI_INTERFACE_VERSION 경우 드라이버는 제공된 구조에서 Direct3D 함수를 채워야 합니다.

pWDDM2_6DeviceFuncs

[in/out] 사용자 모드 표시 드라이버가 해당 함수의 테이블로 채우는 D3DWDDM2_6DDI_DEVICEFUNCS 구조체에 대한 포인터입니다. 인터페이스 멤버의 값이 D3DWDDM2_0_DDI_INTERFACE_VERSION 경우 드라이버는 제공된 구조에서 Direct3D 함수를 채워야 합니다.

Windows 10 버전 1901부터 지원됩니다.

hDrvDevice

[in/out] Direct3D 런타임이 후속 드라이버 호출에서 디스플레이 디바이스를 식별하는 데 사용하는 디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.

DXGIBaseDDI

[in/out] DXGI에 대한 액세스를 제공하는 DXGI_DDI_BASE_ARGS 구조체입니다. DXGI DDI는 렌더링된 프레임을 출력에 표시하고, 감마를 제어하고, 전체 화면 전환을 관리하는 등의 하위 수준 작업을 처리합니다.

hRTCoreLayer

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

pUMCallbacks

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

p11UMCallbacks

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

Windows 7부터 지원됩니다.

pWDDM2_0UMCallbacks

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

pWDDM2_2UMCallbacks

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

pWDDM2_6UMCallbacks

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

Flags

[in] 표시 디바이스를 만드는 방법을 식별하는 플래그 값의 유효한 비트 OR입니다. Direct3D 런타임은 다음 플래그를 지원합니다.

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

ppfnRetrieveSubObject

[in/out] Direct3D 드라이버 디바이스 개체의 하위 파트를 검색하는 RetrieveSubObject(D3D11_1) 함수에 대한 포인터입니다.

Windows 8 부터 지원합니다.

설명

드라이버는 인터페이스버전 멤버의 값을 검사하여 pDeviceFuncs, p10_1DeviceFuncs, p11DeviceFuncs, p11_1DeviceFuncs 또는 pWDDM1_3DeviceFuncs 멤버가 가리키는 D3D10DDI_DEVICEFUNCS, D3D10_1DDI_DEVICEFUNCS, D3D11DDI_DEVICEFUNCS, D3D11_1DDI_DEVICEFUNCS 또는 D3DWDDM1_3DDI_DEVICEFUNCS 구조를 채울지 여부를 결정합니다. 함수. D3d10umddi.h의 다음 상수는 드라이버가 인터페이스버전에서 찾을 수 있는 상수의 예입니다.

#define D3D10_1_DDI_MINOR_VERSION 2
#define D3D10_1_DDI_INTERFACE_VERSION ((D3D10_DDI_MAJOR_VERSION << 16) | D3D10_1_DDI_MINOR_VERSION)
#define D3D10_1_DDI_BUILD_VERSION 1
#define D3D10_1_DDI_SUPPORTED ((((UINT64)D3D10_1_DDI_INTERFACE_VERSION) << 32) | (((UINT64)D3D10_1_DDI_BUILD_VERSION) << 16))

다양한 버전의 운영 체제, Direct3D 및 WDDM(Windows Display Driver Model)에 대한 다른 가능한 상수 조합은 D3d10umddi.h 헤더에 나열됩니다.

Flags 멤버의 0xE 마스크에 설정된 플래그의 경우 드라이버는 다음 상수 및 매크로를 사용하여 지원할 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 Vista
머리글 d3d10umddi.h(D3d10umddi.h 포함)

추가 정보

CreateDevice(D3D10)

D3D10DDI_CORELAYER_DEVICECALLBACKS

D3D10DDI_DEVICEFUNCS

D3D10_1DDI_DEVICEFUNCS

D3D11DDI_3DPIPELINELEVEL

D3D11DDI_3DPIPELINESUPPORT_CAPS

D3D11DDI_CORELAYER_DEVICECALLBACKS

D3D11DDI_DEVICEFUNCS

D3D11_1DDI_DEVICEFUNCS

D3DDDI_ALLOCATIONLIST

D3DDDI_DEVICECALLBACKS

D3DDDI_PATCHLOCATIONLIST

D3DWDDM1_3DDI_DEVICEFUNCS

DXGI_DDI_BASE_ARGS

DxgkDdiCreateDevice

RetrieveSubObject(D3D11_1)