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 per le chiamate di mapping/unmap future.

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

Dimensione, 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) consentito 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 Le dimensioni specificate non sono un multiplo di PAGE_SIZE.
STATUS_INVALID_PARAMETER_3 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

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.

Requisiti

Requisito Valore
Server minimo supportato Windows Server 2022
Intestazione wdm.h (include Wdm.h)

Vedi anche

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE

IOMMU_MAP_RESERVED_LOGICAL_RANGE

IOMMU_UNMAP_RESERVED_LOGICAL_RANGE