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