IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE回呼函式 (wdm.h)
預先配置可用於未來對應的邏輯位址空間。 這可讓驅動程式確保未來地圖/取消對應呼叫的向前進度。
語法
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。 可能的錯誤傳回值包括下列狀態代碼。
傳回碼 | Description |
---|---|
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 (包含 Wdm.h) |
另請參閱
IOMMU_DMA_LOGICAL_ADDRESS_TOKEN
IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE