Freigeben über


IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE Rückruffunktion (wdm.h)

Der logische Adressraum, der für zukünftige Zuordnungen verwendet werden kann, wird vorab zugewiesen. Dadurch kann ein Treiber den Fortschritt für zukünftige Karten-/Zuordnungsaufrufe sicherstellen.

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 den IOMMU_DMA_DOMAIN , zu dem 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 Zuweisungsator erstellt wurde, ist dieses Feld erforderlich. Wenn die Domäne mit einem registrierten logischen Zuweisungsator erstellt wurde, der keine explizite logische Adresszuordnung unterstützt, muss dieses Feld NULL sein.

[in, optional] MinLogicalAddress

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

[in, optional] MaxLogicalAddress

Die maximale (inklusive) zulässige logische Adresse, die reserviert werden kann. Wenn die Domäne nicht mit einem registrierten logischen Zuweisungsator 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 umfassen die folgenden status-Codes.

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER_1 Die angegebene Domäne ist nicht vom Typ DomainTypeTranslate.
STATUS_INVALID_PARAMETER_2 Die angegebene Größe ist kein Vielfaches von PAGE_SIZE.
STATUS_INVALID_PARAMETER_3 Die bereitgestellte ExplicitLogicalAddress ist nicht seitenbündig.
STATUS_INVALID_PARAMETER_MIX Die angegebenen logischen Adressen min und max 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 einer logischen Zuordnung bereitgestellt, die keine explizite logische Adresszuordnung zulässt. Oder eine ExplicitLogicalAddress wurde für eine Domäne ohne logische Zuordnung nicht bereitgestellt.

Weitere Informationen finden Sie unter NTSTATUS-Werte.

Hinweise

Token für logische Adressen können über IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE freigegeben werden.

Token für logische Adressen sollten Teile ihrer logischen Adressbereiche aufweisen, die physischen Adressen über IOMMU_MAP_RESERVED_LOGICAL_RANGE und IOMMU_UNMAP_RESERVED_LOGICAL_RANGE zugeordnet sind.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Server) Windows Server 2022
Kopfzeile wdm.h (einschließen von Wdm.h)

Weitere Informationen

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE

IOMMU_MAP_RESERVED_LOGICAL_RANGE

IOMMU_UNMAP_RESERVED_LOGICAL_RANGE