Freigeben über


IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE Rückruffunktion (wdm.h)

Präallocates logical address space that can be used for future mappings. Dies gewährt einem Treiber die Möglichkeit, den Fortschritt für zukünftige Karten-/Unmap-Aufrufe vorwärts sicherzustellen.

Syntax

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
)
{...}

Parameter

[in] Domain

Ein Zeiger auf die IOMMU_DMA_DOMAIN, zu der die reservierte logische Adresse gehört. Die Domäne muss vom Typ DomainTypeTranslate-sein. Weitere Informationen zu Domänentypen finden Sie unter IOMMU_DMA_DOMAIN_TYPE.

[in] Size

Die Größe des zu reservierenden logischen Adressbereichs in Bytes. Dieser Wert muss eine ganze Anzahl von Seiten darstellen.

[in, optional] ExplicitLogicalAddress

Die logische Domänenadresse, die reserviert werden soll. Wenn die Domäne nicht mit einem registrierten logischen Zuweisungsserver erstellt wurde, ist dieses Feld erforderlich. Wenn die Domäne mit einem registrierten logischen Zuweisungsserver erstellt wurde, der keine explizite logische Adresszuweisung unterstützt, muss dieses Feld NULL-sein.

[in, optional] MinLogicalAddress

Die zulässige minimale (einschließlich) logische Adresse, die reserviert werden kann. Wenn die Domäne nicht mit einem registrierten logischen Zuweisungsserver erstellt wurde, wird dieses Feld ignoriert.

[in, optional] MaxLogicalAddress

Die maximal zulässige (einschließlich) logische Adresse, die reserviert werden kann. Wenn die Domäne nicht mit einem registrierten logischen Zuweisungsserver erstellt wurde, wird dieses Feld ignoriert.

[out] LogicalAddressToken

Gibt einen IOMMU_DMA_LOGICAL_ADDRESS_TOKEN zurück, der den reservierten logischen Adressbereich darstellt.

Rückgabewert

STATUS_SUCCESS, wenn der Vorgang erfolgreich ist. Mögliche Fehlerrückgabewerte sind die folgenden Statuscodes.

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER_1 Die angegebene Domäne ist nicht vom Typ DomainTypeTranslate.
STATUS_INVALID_PARAMETER_2 Die bereitgestellte Größe ist kein Vielfaches von PAGE_SIZE.
STATUS_INVALID_PARAMETER_3 Die bereitgestellte ExplicitLogicalAddress ist nicht seitenausrichtungig.
STATUS_INVALID_PARAMETER_MIX Die bereitgestellten min- und max.-logischen Adressen konnten nicht erfüllt werden.
STATUS_IN_USE Die ExplicitLogicalAddress ist bereits zugeordnet oder teilweise zugeordnet.
STATUS_NOT_SUPPORTED Eine ExplicitLogicalAddress wurde für eine Domäne mit einem logischen Zuweisungszeichen bereitgestellt, der keine explizite logische Adresszuordnung zulässt. Oder eine ExplicitLogicalAddress wurde für eine Domäne ohne logische Zuweisung nicht bereitgestellt.

Weitere Informationen finden Sie unter NTSTATUS Values.

Bemerkungen

Logische Adresstoken können über IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGEfreigegeben werden.

Logische Adresstoken sollten Teile ihrer logischen Adressbereiche aufweisen, denen physische Adressen über IOMMU_MAP_RESERVED_LOGICAL_RANGE und IOMMU_UNMAP_RESERVED_LOGICAL_RANGEzugeordnet und nicht zugeordnet sind.

Anforderungen

Anforderung Wert
mindestens unterstützte Server- Windows Server 2022
Header- wdm.h (include Wdm.h)

Siehe auch

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE

IOMMU_MAP_RESERVED_LOGICAL_RANGE

IOMMU_UNMAP_RESERVED_LOGICAL_RANGE