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


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

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

Синтаксис

typedef struct _D3DKMT_CREATEALLOCATION {
  [in]     D3DKMT_HANDLE                hDevice;
  [in/out] D3DKMT_HANDLE                hResource;
  [out]    D3DKMT_HANDLE                hGlobalShare;
  void                         D3DKMT_PTR(
    const VOID          *unnamedParam1,
    pPrivateRuntimeData unnamedParam2
  );
  [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;
  void                         D3DKMT_PTR(
    HANDLE                        unnamedParam1,
    hPrivateRuntimeResourceHandle unnamedParam2
  );
} 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 предоставлять общий доступ к ресурсу с помощью глобального дескриптора, но драйверы не должны этого делать.)

void D3DKMT_PTR( const VOID *unnamedParam1, pPrivateRuntimeData unnamedParam2)

[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 .

void D3DKMT_PTR( HANDLE unnamedParam1, hPrivateRuntimeResourceHandle unnamedParam2)

Требования

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

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

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS