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

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

Синтаксис

typedef struct _D3DDDI_ALLOCATIONINFO2 {
  D3DKMT_HANDLE                         hAllocation;
  union {
    HANDLE     hSection;
    const VOID *pSystemMem;
  } D3DKMT_ALIGN64;
  void                                  D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
  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), который функция pfnAllocateCb среды выполнения Direct3D возвращает в элементе hKMResourceструктуры D3DDDICB_ALLOCATE . Драйвер отображения пользовательского режима может использовать этот дескриптор выделения в режиме ядра для ссылки на выделение в буфере команд.

D3DKMT_ALIGN64

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

D3DKMT_ALIGN64.hSection

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

D3DKMT_ALIGN64.pSystemMem

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

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

PrivateDriverDataSize

[in] Размер личных данных в байтах.

VidPnSourceId

[in] Отсчитываемый от нуля идентификационный номер VidPN источника видео в пути к топологии сети видеотрансляции (VidPN), если выделение предназначено для основной поверхности. Драйвер должен задавать VidPnSourceId только для основных типов выделения, а не для любого другого типа выделения. Если драйвер задает VidPnSourceId для любого другого типа выделения в вызове функции pfnAllocateCb , pfnAllocateCb возвращает D3DDDI_ID_NOTAPPLICABLE.

Когда подсистема графического ядра DirectX инициирует создание выделения для общей основной поверхности, драйвер мини-порта дисплея может определить идентификационный номер из элемента VidPnSourceIdструктуры D3DKMDDI_SHAREDPRIMARYSURFACEDATA , на которую указывает элемент pPrivateDriverDataструктуры DXGK_ALLOCATIONINFO .

Flags

[in] Объединение, содержащее структуру или 32-разрядное значение, определяющее тип выделения.

Flags.Primary

[in] UINT, указывающий, является ли выделение частью рабочего стола. Такое выделение неявно доступно ЦП. Основное выделение может быть закреплено при создании или не закреплено при создании.

Задание этого элемента эквивалентно установке первого бита 32-разрядного элемента Value (0x00000001).

Flags.Stereo

[in] Поддерживается начиная с Windows 8 (WDDM 1.2). UINT, указывающий, является ли выделение основным стерео. Элемент Stereo можно задать только в том случае, если задан основной элемент.

Задание этого элемента эквивалентно установке второго бита 32-разрядного элемента Value (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 драйвера дисплея miniport. Ниже перечислены эти ограничения.

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

  • Драйвер мини-порта дисплея не может задать следующие флаги битовых полей в элементе FlagsDXGK_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