Поделиться через


структура 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] Указатель на структуру D3DDDI_DEVICECALLBACKS, содержащую таблицу функций обратного вызова Среды выполнения Direct3D, которые драйвер может использовать для доступа к службам ядра.

pDeviceFuncs

[in/out] Указатель на D3D10DDI_DEVICEFUNCS структуру, заполняемую драйвером в пользовательском режиме, таблицей его функций. Среда выполнения Direct3D использует эти функции для взаимодействия с драйвером отображения в пользовательском режиме.

Драйвер должен заполнить свои функции Direct3D версии 10.0 в предоставленной структуре D3D10DDI_DEVICEFUNCS, когда значение в элементе интерфейса D3D10_0_DDI_INTERFACE_VERSION.

p10_1DeviceFuncs

[in/out] Указатель на D3D10_1DDI_DEVICEFUNCS структуру, заполняемую драйвером отображения в пользовательском режиме, таблицей его функций. Версия 10.1 среды выполнения Direct3D использует эти функции для взаимодействия с драйвером отображения в пользовательском режиме.

Драйвер должен заполнить свои функции Direct3D версии 10.1 в предоставленной D3D10_1DDI_DEVICEFUNCS структуре, когда значение в элементе интерфейса D3D10_1_DDI_INTERFACE_VERSION.

Поддерживается начиная с Windows Vista с пакетом обновления 1 (SP1) и Windows Server 2008.

p11DeviceFuncs

[in/out] Указатель на D3D11DDI_DEVICEFUNCS структуру, которая отображает драйвер в пользовательском режиме, заполняется таблицей его функций. Версия 11 среды выполнения Direct3D использует эти функции для взаимодействия с драйвером отображения в пользовательском режиме.

Драйвер должен заполнить свои функции Direct3D версии 11.0 в предоставленной структуре D3D11DDI_DEVICEFUNCS, если значение в элементе интерфейса D3D11_0_DDI_INTERFACE_VERSION.

Поддерживается начиная с Windows 7.

p11_1DeviceFuncs

[in/out] Указатель на структуру D3D11_1DDI_DEVICEFUNCS, которую драйвер отображения пользовательского режима заполняет таблицей своих функций. Начиная с версии 11.1 среда выполнения Direct3D использует эти функции для взаимодействия с драйвером отображения в пользовательском режиме.

Драйвер должен заполнить свои функции Direct3D версии 11.1 в предоставленной структуре D3D11_1DDI_DEVICEFUNCS, если значение в элементе интерфейса D3D11_1_DDI_INTERFACE_VERSION.

Поддерживается начиная с Windows 8.

pWDDM1_3DeviceFuncs

[in/out] Указатель на структуру D3DWDDM1_3DDI_DEVICEFUNCS, которую драйвер отображения пользовательского режима заполняет таблицей своих функций. Версия 11.2 среды выполнения Direct3D использует эти функции для взаимодействия с драйвером отображения в пользовательском режиме.

Драйвер должен заполнить свои функции Direct3D версии 11.2 в предоставленной структуре D3DWDDM1_3DDI_DEVICEFUNCS, когда значение в элементе интерфейса D3DWDDM1_3_DDI_INTERFACE_VERSION.

Поддерживается начиная с Windows 8.1.

pWDDM2_0DeviceFuncs

[in/out] Указатель на D3DWDDM2_0DDI_DEVICEFUNCS структуру, заполняемую драйвером в пользовательском режиме, таблицей его функций. Драйвер должен заполнить свои функции Direct3D в предоставленной структуре, когда значение в элементе интерфейса D3DWDDM2_0_DDI_INTERFACE_VERSION.

pWDDM2_1DeviceFuncs

[in/out] Указатель на D3DWDDM2_1DDI_DEVICEFUNCS структуру, которая отображает драйвер в пользовательском режиме, заполняется таблицей его функций. Драйвер должен заполнить свои функции Direct3D в предоставленной структуре, когда значение в элементе интерфейса D3DWDDM2_0_DDI_INTERFACE_VERSION.

pWDDM2_2DeviceFuncs

[in/out] Указатель на D3DWDDM2_2DDI_DEVICEFUNCS структуру, заполняемую драйвером в пользовательском режиме, таблицей его функций. Драйвер должен заполнить свои функции Direct3D в предоставленной структуре, когда значение в элементе интерфейса D3DWDDM2_0_DDI_INTERFACE_VERSION.

pWDDM2_6DeviceFuncs

[in/out] Указатель на структуру D3DWDDM2_6DDI_DEVICEFUNCS, которую драйвер отображения пользовательского режима заполняет таблицей своих функций. Драйвер должен заполнить свои функции Direct3D в предоставленной структуре, когда значение в элементе интерфейса D3DWDDM2_0_DDI_INTERFACE_VERSION.

Поддерживается начиная с Windows 10 версии 1901.

hDrvDevice

[in/out] Дескриптор устройства отображения (графический контекст), который среда выполнения Direct3D использует в последующих вызовах драйвера для идентификации устройства отображения.

DXGIBaseDDI

[in/out] Структура DXGI_DDI_BASE_ARGS, предоставляющая доступ к DXGI. DXGI DDI обрабатывает низкоуровневые задачи, такие как отображение отрисованных кадров в выходные данные, управление гамма-гамма и управление полноэкранным переходом.

hRTCoreLayer

[in] Дескриптор, который драйвер должен использовать при обратном вызове в среду выполнения Direct3D для доступа к основным функциям Direct3D 10 (то есть, когда драйвер вызывает функции, которые указывает pUMCallbacks член).

pUMCallbacks

[in] Указатель на структуру D3D10DDI_CORELAYER_DEVICECALLBACKS, содержащую таблицу функций обратного вызова Direct3D 10, которые драйвер может использовать для доступа к основным функциям среды выполнения в пользовательском режиме.

p11UMCallbacks

[in] Указатель на структуру D3D11DDI_CORELAYER_DEVICECALLBACKS, содержащую таблицу функций обратного вызова Direct3D 10 и Direct3D 11 среды выполнения, которые драйвер может использовать для доступа к основным функциям среды выполнения в пользовательском режиме.

Поддерживается начиная с Windows 7.

pWDDM2_0UMCallbacks

[in] Указатель на структуру D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS, содержащую таблицу Direct3D 10, Direct3D 11 и WDDM 2.0, которые драйвер может использовать для доступа к основным функциям среды выполнения пользовательского режима.

pWDDM2_2UMCallbacks

[in] Указатель на структуру D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS, содержащую таблицу direct3D 10, Direct3D 11, WDDM 2.0 и функции обратного вызова среды выполнения WDDM 2.2, которые драйвер может использовать для доступа к основным функциям среды выполнения в пользовательском режиме.

pWDDM2_6UMCallbacks

[in] Указатель на структуру D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS, содержащую таблицу обратных вызовов Direct3D 10, Direct3D 11, WDDM 2.0, WDDM 2.2 и WDDM 2.6, которые драйвер может использовать для доступа к основным функциям среды выполнения пользовательского режима.

Flags

[in] Допустимый побитовый ИЛИ значения флага, определяющие, как создать отображаемое устройство. Среда выполнения 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.
Флаг, заданный в маске 0xE элемента Flags Представляет уровень 3-D конвейера, который драйвер должен поддерживать для устройства отображения. См. примечания. Поддерживается начиная с Windows 7.

ppfnRetrieveSubObject

[in/out] Указатель на функцию RetrieveSubObject(D3D11_1), которая извлекает подпартии объекта устройства драйвера Direct3D.

Поддерживается начиная с Windows 8.

Замечания

Драйвер проверяет значения в интерфейса и элементах версии, чтобы определить, следует ли заполнить D3D10DDI_DEVICEFUNCS, D3D10_1DDI_DEVICEFUNCS, D3D11DDI_DEVICEFUNCS, D3D11_1DDI_DEVICEFUNCSили структуру D3DWDDM1_3DDI_DEVICEFUNCS, pDeviceFuncs, p10_1DeviceFuncs, p11DeviceFuncs, p11_1DeviceFuncsили элемент pWDDM1_3DeviceFuncs указывает на функции драйвера. Следующие константы из 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 и модели драйвера windows Display Driver Model (WDDM) перечислены в заголовке D3d10umddi.h.

Для флага, заданного в маске 0xE элемента Flags, драйвер использует следующую константу и макросы для извлечения одного из значений из перечисления D3D11DDI_3DPIPELINELEVEL, представляющего уровень конвейера 3-D для поддержки. Значение в элементе Flags форматируется как caps член структуры D3D11DDI_3DPIPELINESUPPORT_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 (include 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)