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


структура 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

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

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

p10_1DeviceFuncs

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

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

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

p11DeviceFuncs

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

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

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

p11_1DeviceFuncs

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

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

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

pWDDM1_3DeviceFuncs

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

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

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

pWDDM2_0DeviceFuncs

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

pWDDM2_1DeviceFuncs

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

pWDDM2_2DeviceFuncs

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

pWDDM2_6DeviceFuncs

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

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

hDrvDevice

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

DXGIBaseDDI

[вход/выход] Структура 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 поддерживает следующие флаги:

Flag Значение
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 Представляет уровень объемного конвейера, который драйвер должен поддерживать для устройства отображения. См. заметки. Поддерживается начиная с Windows 7.

ppfnRetrieveSubObject

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

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

Комментарии

Драйвер проверяет значения в элементах Interface и Version , чтобы определить, следует ли заполнить структуру 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 , представляющего уровень трехмерного конвейера для поддержки. Значение в элементе 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 (включая 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)