IOMMU_MAP_LOGICAL_RANGE_EX funzione di callback (wdm.h)
Esegue il mapping dello spazio indirizzi fisico nello spazio indirizzi logico di un IOMMU_DMA_DOMAIN.
Sintassi
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
)
{...}
Parametri
[in] Domain
Puntatore al IOMMU_DMA_DOMAIN a cui appartiene l'indirizzo logico mappato. Il dominio deve essere di tipo DomainTypeTranslate. Per altre informazioni sui tipi di dominio, vedere IOMMU_DMA_DOMAIN_TYPE.
[in] Permissions
Campo di bit che rappresenta le autorizzazioni da impostare per l'intervallo di cui viene eseguito il mapping. Per i bit di autorizzazione disponibili, vedere la sezione Note.
[in] PhysicalAddressToMap
Il IOMMU_MAP_PHYSICAL_ADDRESS di cui verrà eseguito il mapping al dominio.
[in, optional] ExplicitLogicalAddress
Indirizzo logico del dominio a cui deve essere mappato l'indirizzo fisico. Se il dominio non è stato creato con un allocatore logico registrato, questo campo è obbligatorio. Se il dominio è stato creato con un allocatore logico registrato che non supporta l'allocazione esplicita degli indirizzi logici, questo campo deve essere NULL.
[in, optional] MinLogicalAddress
Indirizzo logico minimo (inclusivo) a cui deve essere mappato l'indirizzo fisico. Se il dominio non è stato creato con un allocatore logico registrato, questo campo verrà ignorato.
[in, optional] MaxLogicalAddress
Indirizzo logico massimo (inclusivo) a cui deve essere mappato l'indirizzo fisico. Se il dominio non è stato creato con un allocatore logico registrato, questo campo verrà ignorato.
[out] LogicalAddressOut
Restituisce l'indirizzo logico risultante dal mapping.
Valore restituito
STATUS_SUCCESS se l'operazione ha esito positivo. I valori restituiti di errore possibili includono i codici di stato seguenti.
Codice restituito | Descrizione |
---|---|
STATUS_INVALID_PARAMETER_1 | Il dominio specificato non è di tipo DomainTypeTranslate. |
STATUS_INVALID_PARAMETER_3 | Il IOMMU_MAP_PHYSICAL_ADDRESS fornito non rappresenta la memoria fisica allineata alla pagina e ha una dimensione multipla di PAGE_SIZE. |
STATUS_INVALID_PARAMETER_4 | Il valore ExplicitLogicalAddress specificato non è allineato alla pagina. |
STATUS_INVALID_PARAMETER_MIX | Non è stato possibile soddisfare gli indirizzi logici min e max specificati. |
STATUS_IN_USE | ExplicitLogicalAddress è già mappato o parzialmente mappato. |
STATUS_NOT_SUPPORTED | È stato fornito un oggetto ExplicitLogicalAddress per un dominio con un allocatore logico che non consente l'allocazione esplicita degli indirizzi logici. In alternativa, non è stato fornito un oggetto ExplicitLogicalAddress per un dominio senza allocatore logico. |
Per altre informazioni, vedere Valori NTSTATUS.
Commenti
Per rimuovere il mapping dell'indirizzo logico creato da IOMMU_MAP_LOGICAL_RANGE_EX, usare IOMMU_UNMAP_LOGICAL_RANGE; attualmente non esiste alcun equivalente ex per l'annullamento del mapping dell'intervallo di indirizzi logici.
Il campo autorizzazioni è un campo di bit che descrive le autorizzazioni di accesso per le pagine di cui eseguire il mapping.
I bit sono definiti come segue:
Bit 0 = Read Access
Bit 1 = Write Access
Bits 31-2 = Reserved (0)
Requisiti
Requisito | Valore |
---|---|
Server minimo supportato | Windows Server 2022 |
Intestazione | wdm.h (include Wdm.h) |