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


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

Структура D3DDDI_ALLOCATIONINFO2 описывает выделение.

Синтаксис

typedef struct _D3DDDI_ALLOCATIONINFO2 {
  D3DKMT_HANDLE                         hAllocation;
  union {
    HANDLE     hSection;
    const VOID *pSystemMem;
  } D3DKMT_ALIGN64;
  VOID                                  *pPrivateDriverData;
  UINT                                  PrivateDriverDataSize;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID        VidPnSourceId;
  union {
    struct {
      UINT Primary : 1;
      UINT Stereo : 1;
      UINT OverridePriority : 1;
#if ...
      UINT Reserved : 29;
#elif
      UINT Reserved : 30;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  } Flags;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
  union {
    UINT                     Priority;
    D3DKMT_ALIGN64 ULONG_PTR Unused;
  };
#if ...
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[5];
#else
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[6];
#endif
} D3DDDI_ALLOCATIONINFO2;

Члены

hAllocation

[out] Дескриптор D3DKMT_HANDLE, представляющий дескриптор режима ядра для выделения. Этот дескриптор связан с дескриптором ресурсов в режиме ядра (если не NULL), который среды выполнения Direct3D возвращает функцию pfnAllocateCb hKMResource член структуры D3DDDICB_ALLOCATE. Драйвер отображения пользовательского режима может использовать этот дескриптор выделения в режиме ядра для ссылки на выделение в буфере команд.

D3DKMT_ALIGN64

Объединение с hSection и pSystemMem.

D3DKMT_ALIGN64.hSection

[in] Дескриптор допустимого объекта раздела. Используйте hSection при установке D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection.

D3DKMT_ALIGN64.pSystemMem

[in] Указатель на предварительно выделенную системную память. Используйте pSystemMem, если D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection не задано.

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 (WDDM 1.2). UINT, указывающий, является ли выделение стерео первичным выделением. Элемент стерео можно задать только в том случае, если задан элемент первичного .

Установка этого элемента эквивалентна настройке второго бита 32-разрядного элемента значения (0x00000002).

Flags.OverridePriority

[in] Поддерживается начиная с Windows 10 версии 1703 (WDDM 2.2). Переопределите приоритет, как установлено драйвером графики в пользовательском режиме.

Flags.Reserved

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

Flags.Value

[in] 32-разрядное значение, определяющее тип выделения.

GpuVirtualAddress

[out] Виртуальный адрес GPU созданного выделения.

Priority

[in] Приоритет выделения.

Unused

Неиспользованный.

Reserved[5]

Reserved[6]

Замечания

Если драйвер отображения в пользовательском режиме задает флаг основного битового поля в элементе Flags члена D3DDDI_ALLOCATIONINFO, некоторые ограничения применяются к структуре DXGK_ALLOCATIONINFO в функции pAllocationInfo элемента структуры DXGKARG_CREATEALLOCATION выделения в вызове драйвера минипорта DxgkDdiCreateAllocation. К этим ограничениям относятся следующие:

  • Выделение выделяется в соответствии с предпочтениями; в противном случае выделение по умолчанию для поддерживаемого набора сегментов записи, а все указанные сегменты в наборе сегментов записи должны быть доступными для ЦП.

  • Драйвер мини-порта отображения не может задать следующие флаги битового поля в элементе Flags элемента DXGK_ALLOCATIONINFO:

  • PermanentSysMem

  • Кэшированные

  • Защищенный

  • ExistingSysMem

  • ExistingKernelSysMem

Константа D3DDDI_ID_NOTAPPLICABLE определена в D3dukmdt.h.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 7
заголовка d3dukmdt.h

См. также

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb