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