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


структура D3DDDI_ESCAPEFLAGS (d3dukmdt.h)

Структура D3DDDI_ESCAPEFLAGS определяет, как драйвер отображения пользовательского режима (UMD) (или драйвер клиента) предоставляет сведения о том, как в режиме ядра отображается минипорт-драйвер (KMD).

Синтаксис

typedef struct _D3DDDI_ESCAPEFLAGS {
  union {
    struct {
      UINT HardwareAccess : 1;
      UINT DeviceStatusQuery : 1;
      UINT ChangeFrameLatency : 1;
      UINT NoAdapterSynchronization : 1;
#if ...
      UINT Reserved : 1;
      UINT VirtualMachineData : 1;
      UINT DriverKnownEscape : 1;
      UINT DriverCommonEscape : 1;
#if ...
      UINT Reserved2 : 24;
#else
      UINT Reserved2 : 26;
#endif
#elif
      UINT Reserved : 28;
#elif
      UINT Reserved : 29;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  };
} D3DDDI_ESCAPEFLAGS;

Члены

HardwareAccess

Значение UINT, указывающее, выполняет ли ОС второй уровень синхронизации в KMD для вызова DxgkDdiEscape. Если драйверу требуется второй уровень синхронизации и флаг HardwareAccess HardwareAccess не задан, вызов функции драйвера DxgkDdiEscape должен завершиться ошибкой.

Начиная с Windows 8.1, если этот элемент задан, DeviceStatusQuery и ChangeFrameLatency должно быть равно нулю.

DeviceStatusQuery

Если задано, при вызове функцииpfnEscapeCb и D3DDDICB_ESCAPE.член PrivateDriverDataSizesizeof(D3DDDI_EXECUTIONSTATEESCAPE), среда выполнения Direct3D интерпретирует D3DDDICB_ESCAPE.элемент pPrivateDriverData в качестве указателя на буфер, содержащий структуру D3DDDI_EXECUTIONSTATEESCAPE. Кроме того, среда выполнения обрабатывает pfnEscapeCb в качестве запроса состояния путем записи запрошенных сведений в предоставленный буфер вместо отправки вызова DxgkDdiEscape kmD.

Если этот элемент задан, HardwareAccess и ChangeFrameLatency должно быть равно нулю.

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

Операционная система игнорирует этот элемент, если до Windows 8.1 или драйвер пользовательского режима был инициализирован с помощью вызова OpenAdapterXxxx, где pOpenData— элемент интерфейса> указывает Direct3D версии 8 или более ранней.

ChangeFrameLatency

Если задано, при вызове функции pfnEscapeCbD3DDDICB_ESCAPE.член PrivateDriverDataSize также sizeof(D3DDDI_FRAMELATENCYESCAPE) и условия в примечаниях также выполняются, среда выполнения Direct3D интерпретирует D3DDDICB_ESCAPE.элемент pPrivateDriverData в качестве указателя на буфер, содержащий структуру D3DDDI_FRAMELATENCYESCAPE. Кроме того, среда выполнения обрабатывает pfnEscapeCb в качестве запроса на изменение максимальной задержки кадров ядра DirectX, записывая запрошенные сведения в предоставленный буфер вместо отправки DxgkDdiEscape вызов KMD.

Если этот элемент задан, HardwareAccess и DeviceStatusQuery должно быть равно нулю.

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

Операционная система игнорирует этот элемент, если до Windows 8.1 или драйвер пользовательского режима был инициализирован с помощью вызова OpenAdapterXxxx, где pOpenData— элемент интерфейса> указывает Direct3D версии 8 или более ранней.

NoAdapterSynchronization

Reserved

Этот элемент зарезервирован и должен иметь значение нулю.

VirtualMachineData

Указывает, что DxgkDdiEscape вызывается из виртуальной машины. Этот флаг нельзя задать из пользовательского режима. Поддерживается начиная с WDDM 2.2.

DriverKnownEscape

Частные данные драйвера указывают на хорошо известную структуру.

DriverCommonEscape

Частные данные указывают на определяемую средой выполнения D3D структуру.

Reserved2

Этот элемент зарезервирован и должен иметь значение нулю.

Value

Член профсоюза, содержащийся в D3DDDI_ESCAPEFLAGS, который может содержать одно 32-разрядное значение, определяющее способ совместного использования информации.

Замечания

Если задано ChangeFrameLatency, вызов pfnEscapeCb будет выполнен только в том случае, если:

  • KMD отвечает за конфигурацию связанного адаптера (LDA), предоставляемую одним поставщиком.
  • Приложение взяло монопольное владение полноэкранным отображением в какой-то момент времени существования.
  • Приложение не переопределяет максимальное значение задержки кадров по умолчанию 3.

Если эти условия не выполнены, вызов pfnEscapeCb возвращает код ошибки E_INVALIDARG.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista (WDDM 1.0)
заголовка d3dukmdt.h (include D3dumddi.h, D3dkmddi.h)

См. также

D3DDDICB_ESCAPE

D3DDDI_EXECUTIONSTATEESCAPE

D3DDDI_FRAMELATENCYESCAPE

DXGKARG_ESCAPE

DxgkDdiEscape

pfnEscapeCb