Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предварительно выделяет логическое адресное пространство, которое можно использовать для будущих сопоставлений. Это дает драйверу возможность обеспечить прогресс вперед для будущих вызовов карты или unmap.
Синтаксис
IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE IommuReserveLogicalAddressRange;
NTSTATUS IommuReserveLogicalAddressRange(
[in] PIOMMU_DMA_DOMAIN Domain,
[in] SIZE_T Size,
[in, optional] PIOMMU_DMA_LOGICAL_ADDRESS ExplicitLogicalAddress,
[in, optional] PIOMMU_DMA_LOGICAL_ADDRESS MinLogicalAddress,
[in, optional] PIOMMU_DMA_LOGICAL_ADDRESS MaxLogicalAddress,
[out] PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN *LogicalAddressToken
)
{...}
Параметры
[in] Domain
Указатель на IOMMU_DMA_DOMAIN, к которому принадлежит зарезервированный логический адрес. Домен должен быть типом DomainTypeTranslate. Дополнительные сведения о типах доменов см. в IOMMU_DMA_DOMAIN_TYPE.
[in] Size
Размер в байтах для резервирования диапазона логических адресов. Это значение должно представлять целое количество страниц.
[in, optional] ExplicitLogicalAddress
Логический адрес домена, который должен быть зарезервирован. Если домен не был создан с зарегистрированным логическим распределителем, это поле необходимо. Если домен был создан с зарегистрированным логическим распределителем, который не поддерживает явное выделение логических адресов, это поле должно быть null.
[in, optional] MinLogicalAddress
Минимальный (включительно) допустимый логический адрес, который можно зарезервировать. Если домен не был создан с зарегистрированным логическим распределителем, это поле будет игнорироваться.
[in, optional] MaxLogicalAddress
Максимальный (включительно) допустимый логический адрес, который можно зарезервировать. Если домен не был создан с зарегистрированным логическим распределителем, это поле будет игнорироваться.
[out] LogicalAddressToken
Возвращает IOMMU_DMA_LOGICAL_ADDRESS_TOKEN, представляющую диапазон зарезервированных логических адресов.
Возвращаемое значение
STATUS_SUCCESS, если операция выполнена успешно. Возможные значения возвращаемых ошибок включают следующие коды состояния.
Возвращаемый код | Описание |
---|---|
STATUS_INVALID_PARAMETER_1 | Указанный домен не имеет типа DomainTypeTranslate. |
STATUS_INVALID_PARAMETER_2 | Указанный размер не является несколькими PAGE_SIZE. |
STATUS_INVALID_PARAMETER_3 | Предоставленный параметр ExplicitLogicalAddress не выровнен по страницам. |
STATUS_INVALID_PARAMETER_MIX | Не удалось выполнить указанные минимальные и максимальные логические адреса. |
STATUS_IN_USE | Объект ExplicitLogicalAddress уже сопоставлен или частично сопоставлен. |
STATUS_NOT_SUPPORTED | Объект ExplicitLogicalAddress был предоставлен для домена с логическим распределителем, который не разрешает явное выделение логических адресов. Или для домена без логического распределителя не было предоставлено значение ExplicitLogicalAddress. |
Дополнительные сведения см. в значения NTSTATUS.
Замечания
Маркеры логических адресов можно освободить с помощью IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE.
Маркеры логических адресов должны иметь части их диапазонов логических адресов, сопоставленных с физическими адресами и не сопоставленные с физическими адресами с помощью IOMMU_MAP_RESERVED_LOGICAL_RANGE и IOMMU_UNMAP_RESERVED_LOGICAL_RANGE.
Требования
Требование | Ценность |
---|---|
минимальный поддерживаемый сервер | Windows Server 2022 |
заголовка | wdm.h (include Wdm.h) |
См. также
IOMMU_DMA_LOGICAL_ADDRESS_TOKEN
IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE