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