структура 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 в Flags и вызвать 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 битовое поле в Flags, необходимо также задать флаг CreateResource битового поля.
[in] hPrivateRuntimeResourceHandle
Непрозрачный дескриптор, который можно использовать в трассировке событий. Этот дескриптор можно использовать для связывания выделений в режиме ядра с указателями на поверхности пользовательского режима при анализе журналов событий трассировки событий Windows (ETW).
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista |
заголовка | d3dkmthk.h (include D3dkmthk.h) |