IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE funzione di callback (wdm.h)
Prealloca lo spazio indirizzi logico che può essere usato per i mapping futuri. Ciò garantisce a un driver la possibilità di garantire lo stato di avanzamento in avanti per le future chiamate mappa/unmap.
Sintassi
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
)
{...}
Parametri
[in] Domain
Puntatore al IOMMU_DMA_DOMAIN a cui appartiene l'indirizzo logico riservato. Il dominio deve essere di tipo DomainTypeTranslate. Per altre informazioni sui tipi di dominio, vedere IOMMU_DMA_DOMAIN_TYPE.
[in] Size
Dimensioni, in byte, dell'intervallo di indirizzi logici da riservare. Questo valore deve rappresentare un numero intero di pagine.
[in, optional] ExplicitLogicalAddress
Indirizzo logico del dominio che deve essere riservato. 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) che può essere riservato. Se il dominio non è stato creato con un allocatore logico registrato, questo campo verrà ignorato.
[in, optional] MaxLogicalAddress
Indirizzo logico massimo (inclusivo) che può essere riservato. Se il dominio non è stato creato con un allocatore logico registrato, questo campo verrà ignorato.
[out] LogicalAddressToken
Restituisce un IOMMU_DMA_LOGICAL_ADDRESS_TOKEN che rappresenta l'intervallo di indirizzi logici riservati.
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_2 | La dimensione specificata non è un multiplo di PAGE_SIZE. |
STATUS_INVALID_PARAMETER_3 | L'argomento ExplicitLogicalAddress specificato non è allineato alla pagina. |
STATUS_INVALID_PARAMETER_MIX | Non è stato possibile soddisfare gli indirizzi logici min e max forniti. |
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. Oppure non è stato fornito un oggetto ExplicitLogicalAddress per un dominio senza allocatore logico. |
Per altre informazioni, vedere valori NTSTATUS.
Osservazioni
I token di indirizzo logico possono essere liberati tramite IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE.
I token di indirizzo logico devono avere parti degli intervalli di indirizzi logici mappati a e non mappati dagli indirizzi fisici tramite IOMMU_MAP_RESERVED_LOGICAL_RANGE e IOMMU_UNMAP_RESERVED_LOGICAL_RANGE.
Fabbisogno
Requisito | Valore |
---|---|
server minimo supportato | Windows Server 2022 |
intestazione | wdm.h (include Wdm.h) |
Vedere anche
IOMMU_DMA_LOGICAL_ADDRESS_TOKEN
IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE