структура DXGKARGCB_MAP_PHYSICAL_MEMORY (d3dkmddi.h)
Структура DXGKARGCB_MAP_PHYSICAL_MEMORY содержит сведения, используемые функцией обратного вызова DXGKCB_MAPPHYSICALMEMORY для сопоставления видимого ЦП виртуального адреса с базовой физической памятью.
Синтаксис
typedef struct _DXGKARGCB_MAP_PHYSICAL_MEMORY {
[in] HANDLE hPhysicalMemoryObject;
[in] DXGK_ACCESS_MODE AccessMode;
[in/out] SIZE_T Offset;
[in] SIZE_T Size;
[out] void *pMappedAddress;
} DXGKARGCB_MAP_PHYSICAL_MEMORY;
Члены
[in] hPhysicalMemoryObject
Объект физической памяти, описывающий базовые физические страницы, которые необходимо сопоставить. Этот объект был создан при вызове DXGKCB_CREATEPHYSICALMEMORYOBJECT.
[in] AccessMode
Значение перечисления DXGK_ACCESS_MODE , описывающее режим доступа (пользовательский режим или режим ядра), для которого должно быть выполнено сопоставление.
[in/out] Offset
В качестве входных данных задает смещение от начала объекта физической памяти в байтах. В качестве выходных данных указывает смещение от начала сопоставленного базового адреса, где находятся запрошенные данные, в байтах. Дополнительные сведения см. в разделе "Примечания".
[in] Size
В качестве входных данных указывает запрошенный размер сопоставленной области в байтах. В качестве выходных данных указывает фактический сопоставленный размер в байтах. Дополнительные сведения см. в разделе "Примечания".
[out] pMappedAddress
При успешном вызове DXGKCB_MAPPHYSICALMEMORY это указатель на базовое сопоставление физической памяти. Начало сопоставленного диапазона памяти может не совпадать со смещением, запрошенным драйвером, если требовалось округление или выравнивание. В результате выходное значение Offset означает смещение от базового адреса к данным, запрошенным драйвером. То есть ActualAddress = BaseAddress + Offset.
Комментарии
Offset и Size являются входными и выходными параметрами. В качестве входных данных они описывают область физической памяти, запрашиваемой вызывающим элементом. В выходных данных они описывают фактическое сопоставленного представления. Это связано с тем, что адрес, сопоставленный с соответствующей физической памятью, может не совпадать с запрошенным смещением. Фактические данные, запрашиваемые вызывающим элементом, будут равнысмещениюpMappedAddress + . Размер сопоставленного диапазона виртуальных адресов будет выходным значением Size, которое может быть больше запрошенного размера.
Дополнительные сведения см. в статье Переназначение DMA IOMMU .
Требования
Требование | Значение |
---|---|
Минимальная версия сервера | Windows Server 2022 (WDDM 2.9) |
Верхняя часть | d3dkmddi.h |