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


функция обратного вызова 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 (включая Wdm.h)

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

IOMMU_UNMAP_RESERVED_LOGICAL_RANGE

IOMMU_MAP_PHYSICAL_ADDRESS

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT