Freigeben über


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)

Siehe auch

IOMMU_DMA_DOMAIN_TYPE

IOMMU_MAP_PHYSICAL_ADDRESS

DMA_IOMMU_INTERFACE_V2

DMA_IOMMU_INTERFACE_EX