структура D3DDDI_ALLOCATIONINFO (d3dukmdt.h)
Структура D3DDDI_ALLOCATIONINFO описывает выделение для WDDM версии 1. Вместо этого графические клиенты в режиме пользователя должны использовать D3DDDI_ALLOCATIONINFO2.
Синтаксис
typedef struct _D3DDDI_ALLOCATIONINFO {
D3DKMT_HANDLE hAllocation;
const VOID *pSystemMem;
VOID *pPrivateDriverData;
UINT PrivateDriverDataSize;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
union {
struct {
UINT Primary : 1;
UINT Stereo : 1;
#if ...
UINT Reserved : 30;
#else
UINT Reserved : 31;
#endif
};
UINT Value;
} Flags;
} D3DDDI_ALLOCATIONINFO;
Члены
hAllocation
[out] D3DKMT_HANDLE, представляющий дескриптор режима ядра для выделения. Этот дескриптор связан с дескриптором ресурсов в режиме ядра (если не NULL), который
pSystemMem
[in] Указатель на системную память, которая предварительно была размещена во время выполнения Direct3D. В противном случае этот элемент имеет значение NULL, если выделение предназначено для использования памяти видео.
Если выделение находится в системной памяти, драйвер отображения пользовательского режима должен назначить буфер в pSysMem член структуры D3DDDI_SURFACEINFO для ресурса pSystemMem. Этот буфер указывается, когда среда выполнения Direct3D вызывает функцию драйвера отображения в пользовательском режиме CreateResource для создания ресурсов.
pPrivateDriverData
[in/out,opt] Указатель на буфер, содержащий необязательные частные данные, которые могут потребоваться драйвером мини-порта отображения для создания выделения. Минипорт-драйвер дисплея также может возвращать данные в буфере. Когда содержимое буфера передается драйверу мини-порта отображения, содержимое должно быть в формате, который может обрабатывать драйвер мини-порта отображения.
PrivateDriverDataSize
[in] Размер в байтах частных данных.
VidPnSourceId
[in] Отсчитываемый от нуля идентификатор VidPN источника видео в пути к топологии vidPN, если выделение предназначено для основной поверхности. Драйвер должен задать VidPnSourceId только для основных типов выделения, а не для любого другого типа выделения. Если драйвер задает VidPnSourceId для любого другого типа выделения в вызове функции pfnAllocateCb, pfnAllocateCb возвращает D3DDDI_ID_NOTAPPLICABLE.
Когда подсистема ядра графики DirectX инициирует создание выделения для общей первичной поверхности, драйвер минипорта отображения может определить идентификационный номер из члена D3DKMDDI_SHAREDPRIMARYSURFACEDATA структуры D3DKMDDI_SHAREDPRIMARYSURFACEDATA, к которой указывает pPrivateDriverData член структуры DXGK_ALLOCATIONINFO.
Flags
[in] Объединение, содержащее структуру или 32-разрядное значение, определяющее тип выделения.
Flags.Primary
[in] UINT, указывающий, является ли выделение частью рабочего стола. Такое выделение неявно доступно ЦП. Основное выделение может быть закреплено при создании или не закреплено при создании.
Установка этого элемента эквивалентна настройке первого бита 32-разрядного значения значения (0x00000001).
Flags.Stereo
[in] Поддерживается начиная с Windows 8. UINT, указывающий, является ли выделение стерео первичным выделением. Элемент
Установка этого элемента эквивалентна настройке второго бита 32-разрядного элемента значения (0x00000002).
Flags.Reserved
[in] Этот элемент зарезервирован и должен иметь значение нулю.
Flags.Value
[in] 32-разрядное значение, определяющее тип выделения.
Замечания
Если драйвер отображения в пользовательском режиме задает флаг
Выделение выделяется в соответствии с предпочтениями; в противном случае выделение по умолчанию для поддерживаемого набора сегментов записи, а все указанные сегменты в наборе сегментов записи должны быть доступными для ЦП.
Драйвер мини-порта отображения не может задать следующие флаги битового поля в элементе Flags элемента DXGK_ALLOCATIONINFO:
PermanentSysMem
Кэшированные
Защищено
ExistingSysMem
ExistingKernelSysMem
Константа D3DDDI_ID_NOTAPPLICABLE определена в D3dukmdt.h.
Требования
Требование | Ценность |
---|---|
Минимально поддерживаемый клиент | Windows Vista |
Заголовок | d3dukmdt.h (include D3dumddi.h, D3dkmddi.h) |