IOMMU_MAP_LOGICAL_RANGE_EX Rückruffunktion (wdm.h)
Ordnet physischen Adressraum dem logischen Adressraum eines IOMMU_DMA_DOMAINzu.
Syntax
IOMMU_MAP_LOGICAL_RANGE_EX IommuMapLogicalRangeEx;
NTSTATUS IommuMapLogicalRangeEx(
[in] PIOMMU_DMA_DOMAIN Domain,
[in] ULONG Permissions,
[in] PIOMMU_MAP_PHYSICAL_ADDRESS PhysicalAddressToMap,
[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 LogicalAddressOut
)
{...}
Parameter
[in] Domain
Ein Zeiger auf die IOMMU_DMA_DOMAIN, zu der die zugeordnete 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] Permissions
Ein Bitfeld, das die Berechtigungen darstellt, die für den zugeordneten Bereich festgelegt werden sollen. Weitere Informationen zu den verfügbaren Berechtigungsbits finden Sie in den Hinweisen.
[in] PhysicalAddressToMap
Die IOMMU_MAP_PHYSICAL_ADDRESS, die der Domäne zugeordnet wird.
[in, optional] ExplicitLogicalAddress
Die logische Domäneadresse, der die physische Adresse zugeordnet 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 (einschließlich) logische Mindestadresse, der die physische Adresse zugeordnet werden soll. 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, der die physische Adresse zugeordnet werden soll. Wenn die Domäne nicht mit einem registrierten logischen Zuweisungsserver erstellt wurde, wird dieses Feld ignoriert.
[out] LogicalAddressOut
Gibt die resultierende logische Adresse aus der Zuordnung zurück.
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_3 | Die bereitgestellte IOMMU_MAP_PHYSICAL_ADDRESS stellt keinen physischen Speicher dar, der seitenausgeglichen ist und eine Größe aufweist, die ein Vielfaches von PAGE_SIZE ist. |
STATUS_INVALID_PARAMETER_4 | 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
Um die Zuordnung der logischen Adresse aufzuheben, die von IOMMU_MAP_LOGICAL_RANGE_EXerstellt wurde, verwenden Sie IOMMU_UNMAP_LOGICAL_RANGE; Zurzeit gibt es keine Ex-Entsprechung für logische Adressbereiche, die die Zuordnung aufheben.
Das Berechtigungsfeld ist ein Bitfeld, das die Zugriffsberechtigungen für die zuzuordnenden Seiten beschreibt.
Die Bits sind wie folgt definiert:
Bit 0 = Read Access
Bit 1 = Write Access
Bits 31-2 = Reserved (0)
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Server- | Windows Server 2022 |
Header- | wdm.h (include Wdm.h) |