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


функция обратного вызова DXGKCB_MAP_MEMORY (dispmprt.h)

Функция DxgkCbMapMemory сопоставляет диапазон преобразованных физических адресов (связанных с ресурсом памяти, назначенным адаптеру дисплея) в системное пространство или виртуальное адресное пространство процесса пользовательского режима.

Синтаксис

DXGKCB_MAP_MEMORY DxgkcbMapMemory;

NTSTATUS DxgkcbMapMemory(
  [in]  HANDLE DeviceHandle,
  [in]  PHYSICAL_ADDRESS TranslatedAddress,
  [in]  ULONG Length,
  [in]  BOOLEAN InIoSpace,
  [in]  BOOLEAN MapToUserMode,
  [in]  MEMORY_CACHING_TYPE CacheType,
  [out] PVOID *VirtualAddress
)
{...}

Параметры

[in] DeviceHandle

Дескриптор, представляющий видеоадаптер. Драйвер мини-порта дисплея ранее получил этот дескриптор в элементе DeviceHandleструктуры DXGKRNL_INTERFACE , переданной в DxgkDdiStartDevice.

[in] TranslatedAddress

Базовый преобразованный физический адрес диапазона памяти для сопоставления. Драйвер мини-порта дисплея ранее получил этот адрес, вызвав DxgkCbGetDeviceInformation.

[in] Length

Размер диапазона для сопоставления (в байтах).

[in] InIoSpace

Логическое значение, указывающее, находится ли диапазон в пространстве ввода-вывода (TRUE) или в пространстве памяти (FALSE).

[in] MapToUserMode

Логическое значение, указывающее, сопоставляется ли диапазон с пространством пользовательского режима или системным пространством. Если задано значение TRUE, диапазон сопоставляется с виртуальным адресным пространством (в пользовательском режиме) текущего процесса. Если значение РАВНО FALSE, диапазон сопоставляется с системным пространством. Если inIoSpace имеет значение TRUE, этот параметр игнорируется.

[in] CacheType

Перечислитель MEMORY_CACHING_TYPE , указывающий поведение кэширования сопоставленного диапазона.

[out] VirtualAddress

Указатель на переменную, которая получает адрес начала сопоставленного диапазона. Способ доступа к сопоставленному диапазону зависит от значений InIoSpace и MapToUserMode. В следующей таблице перечислены различные способы доступа к сопоставленному диапазону.

Значение InIoSpace MapToUserMode имеет значение FALSE MapToUserMode имеет значение TRUE
Ложь. READ_REGISTER_X WRITE_REGISTER_X Код в пользовательском режиме выполняет обычный доступ к памяти.
TRUE READ_PORT_X WRITE_PORT_X Невозможна.

Возвращаемое значение

DxgkCbMapMemory возвращает STATUS_SUCCESS в случае успешного выполнения. В противном случае возвращается один из кодов ошибок, определенных в ntstatus.h.

Комментарии

Тип данных PHYSICAL_ADDRESS определен в ntdef.h.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Целевая платформа Персональный компьютер
Верхняя часть dispmprt.h (включая Dispmprt.h)
IRQL PASSIVE_LEVEL

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

MEMORY_CACHING_TYPE