структура D3DKMT_CREATEALLOCATION (d3dkmthk.h)

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

Синтаксис

typedef struct _D3DKMT_CREATEALLOCATION {
  [in]     D3DKMT_HANDLE                hDevice;
  [in/out] D3DKMT_HANDLE                hResource;
  [out]    D3DKMT_HANDLE                hGlobalShare;
  [in]     const VOID                   *pPrivateRuntimeData;
  [in]     UINT                         PrivateRuntimeDataSize;
  union {
    [in]     D3DKMT_CREATESTANDARDALLOCATION *pStandardAllocation;
    [in]     const VOID                      *pPrivateDriverData;
  };
  [in/out] UINT                         PrivateDriverDataSize;
  [in]     UINT                         NumAllocations;
  union {
    [in]     D3DDDI_ALLOCATIONINFO  *pAllocationInfo;
    [in]     D3DDDI_ALLOCATIONINFO2 *pAllocationInfo2;
  };
  [in]     D3DKMT_CREATEALLOCATIONFLAGS Flags;
  [in]     HANDLE                       hPrivateRuntimeResourceHandle;
} D3DKMT_CREATEALLOCATION;

Члены

[in] hDevice

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

[in/out] hResource

Тип данных D3DKMT_HANDLE, представляющий дескриптор режима ядра для ресурса, связанного с выделениями. Значение в hResource всегда должно быть равно нулю, если выделение не будет добавлено к существующему ресурсу. В этом случае hResource содержит дескриптор ресурса.

Если флаг битового поля CreateResource установлен в элементе Flags , среда выполнения OpenGL создает уникальный дескриптор и передает его обратно драйверу. В выходных данных функции D3DKMTCreateAllocationhResource указывает дескриптор, который драйвер должен использовать в последующих вызовах среды выполнения OpenGL для идентификации ресурса. Возвращаемый дескриптор ресурса зависит от устройства и действителен только при использовании с устройством, на которое он был создан.

[out] hGlobalShare

Драйвер клиента в пользовательском режиме не должен совместно использовать ресурсы с помощью глобальных дескрипторов. Драйвер должен задать NtSecuritySharing в разделе Флаги и вызвать D3DKMTShareObjects , чтобы получить дескриптор NT. Использование глобальных дескрипторов небезопасно. Любой процесс может угадать глобальный дескриптор и открыть общий объект. Глобальные дескрипторы поддерживаются только в целях совместимости со старыми средами выполнения D3D. (Если ntSecuritySharing не задан, глобальный дескриптор возвращается в hGlobalShare. Ничто не мешает UMD совместно использовать ресурс с помощью глобального дескриптора, но драйверы не должны этого делать.)

[in] pPrivateRuntimeData

Указатель на необязательные частные данные, которые можно присоединить к ресурсу для отладки. Эти данные являются данными для каждого ресурса, а не для каждого выделения.

[in] PrivateRuntimeDataSize

Размер (в байтах) частных данных, на которые указывает pPrivateRuntimeData .

[in] pStandardAllocation

Указатель на структуру D3DKMT_CREATESTANDARDALLOCATION , описывающую создаваемое стандартное выделение.

[in] pPrivateDriverData

Указатель на буфер, содержащий необязательные частные данные, которые могут потребоваться драйверу мини-порта дисплея для создания ресурса или выделения. Содержимое буфера обычно подается из ICD и должно быть в формате, который может обрабатывать драйвер мини-порта дисплея.

[in/out] PrivateDriverDataSize

Размер в байтах частных данных, на которые указывает pPrivateDriverData .

[in] NumAllocations

Количество элементов в массиве, задающее pAllocationInfo , которое представляет количество создаваемых выделений. Обратите внимание, что создание ресурса без первоначально связанных с ним выделений является допустимым; Таким образом, NumAllocations можно задать равным 0.

[in] pAllocationInfo

Массив D3DDDI_ALLOCATIONINFO структур, описывающих определенные свойства для каждого создаваемого выделения.

[in] pAllocationInfo2

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

Этот элемент доступен начиная с Windows 7.

[in] Flags

Структура D3DKMT_CREATEALLOCATIONFLAGS , которая определяет атрибуты для создания выделения в флагах битовых полей.

Если вы задали флаг битового поля CreateShared в разделе Флаги, необходимо также установить флаг битового поля CreateResource .

[in] hPrivateRuntimeResourceHandle

Непрозрачный дескриптор, который можно использовать для трассировки событий. Этот дескриптор можно использовать для связывания выделений в режиме ядра с указателями поверхности пользовательского режима при анализе журналов событий трассировки событий Windows (ETW).

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Верхняя часть d3dkmthk.h (включая D3dkmthk.h)

См. также раздел

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS