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


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

Сопоставляет зарезервированный логический диапазон.

В отличие от IOMMU_MAP_LOGICAL_RANGE_EX, это гарантирует не выделение памяти, так как предполагается, что они уже были выполнены ранее с IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE.

Синтаксис

IOMMU_MAP_RESERVED_LOGICAL_RANGE IommuMapReservedLogicalRange;

NTSTATUS IommuMapReservedLogicalRange(
  [in, out] PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN LogicalAddressToken,
  [in]      SIZE_T Offset,
  [in]      ULONG Permissions,
  [in]      PIOMMU_MAP_PHYSICAL_ADDRESS PhysicalAddressToMap,
  [out]     PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT MappedSegment
)
{...}

Параметры

[in, out] LogicalAddressToken

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN для сопоставлений.

[in] Offset

Смещение в байтах в маркер логического адреса, представляющее базовый логический адрес, который необходимо сопоставить.

[in] Permissions

Битовое поле, представляющее разрешения для сопоставленного диапазона. См. примечания для доступных битов разрешений.

[in] PhysicalAddressToMap

IOMMU_MAP_PHYSICAL_ADDRESS, которые будут сопоставлены с доменом.

[out] MappedSegment

Возвращает IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT, представляющий сегмент маркера логического адреса, который теперь сопоставлен.

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

STATUS_SUCCESS, если операция выполнена успешно. Возможные значения возвращаемых ошибок включают следующие коды состояния.

Возвращаемый код Описание
STATUS_INVALID_PARAMETER_2 Предоставленное смещение не выровнено по страницам.
STATUS_INVALID_PARAMETER_4 Указанный физический адрес не выровнен по страницам и (или) не является целым количеством страниц в размере.
STATUS_RESOURCE_IN_USE Диапазон логических адресов, представленный в маркере логического адреса, уже полностью или частично сопоставлен.
STATUS_UNSUCCESSFUL Маркер логического адреса в настоящее время удаляется.

Дополнительные сведения см. в значения NTSTATUS.

Замечания

Сегмент, сопоставленный с логическим маркером адреса, можно распаковать с помощью IOMMU_UNMAP_RESERVED_LOGICAL_RANGE.

Поле разрешений — это битовое поле, описывающее разрешения доступа для сопоставленных страниц.

Биты определяются следующим образом:

Bit 0 = Read Access

Bit 1 = Write Access

Bits 31-2 = Reserved (0)

Требования

Требование Ценность
минимальный поддерживаемый сервер Windows Server 2022
заголовка wdm.h (include Wdm.h)

См. также

IOMMU_UNMAP_RESERVED_LOGICAL_RANGE

IOMMU_MAP_PHYSICAL_ADDRESS

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT