структура 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) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по