Funzione StorPortAllocateDmaMemory (storport.h)
Questa funzione è la versione estesa della funzione StorPortAllocateContiguousMemorySpecifyCacheNode. Alloca un intervallo di memoria non con estensione contigua fisicamente contigua, non a pagina e restituisce l'indirizzo fisico del buffer allocato.
Sintassi
ULONG StorPortAllocateDmaMemory(
[in] PVOID HwDeviceExtension,
[in] SIZE_T NumberOfBytes,
[in] PHYSICAL_ADDRESS LowestAcceptableAddress,
[in] PHYSICAL_ADDRESS HighestAcceptableAddress,
[in, optional] PHYSICAL_ADDRESS BoundaryAddressMultiple,
[in] MEMORY_CACHING_TYPE CacheType,
[in] NODE_REQUIREMENT PreferredNode,
[out] PVOID *BufferPointer,
[out] PPHYSICAL_ADDRESS PhysicalAddress
);
Parametri
[in] HwDeviceExtension
Puntatore all'estensione del dispositivo hardware per l'adattatore del bus host (HBA).
[in] NumberOfBytes
Numero di byte da allocare.
[in] LowestAcceptableAddress
Indirizzo fisico più basso valido per l'allocazione. Ad esempio, se il dispositivo può fare riferimento solo alla memoria fisica nell'intervallo da 8 MB a 16 MB, questo valore verrà impostato su 0x800000 (8 MB).
[in] HighestAcceptableAddress
Indirizzo fisico più alto valido per l'allocazione. Ad esempio, se il dispositivo può fare riferimento solo alla memoria fisica inferiore a 16 MB, questo valore verrà impostato su 0xFFFFFF (16 MB - 1).
[in, optional] BoundaryAddressMultiple
Indirizzo fisico multiplo che questa allocazione non deve attraversare.
[in] CacheType
Tipo di cache desiderato per il mapping.
[in] PreferredNode
Nodo preferito da cui deve essere effettuata l'allocazione se le pagine sono disponibili in tale nodo.
[out] BufferPointer
Variabile che riceve l'indirizzo iniziale del blocco di memoria allocato. Al ritorno da questa routine, se questa variabile è zero, non è stato possibile trovare un intervallo contiguo per soddisfare la richiesta. Se questa variabile non è NULL, contiene un puntatore (ad esempio, un indirizzo virtuale nella parte non paginata del sistema) alla memoria contigua allocata fisicamente.
[out] PhysicalAddress
Indirizzo fisico del blocco di memoria allocato.
Valore restituito
Questa funzione restituisce un codice STOR_STATUS.
Codice restituito | Descrizione |
---|---|
STOR_STATUS_NOT_IMPLEMENTED | Questa funzione non viene implementata nel sistema operativo attivo. |
STOR_STATUS_SUCCESS | L'operazione è stata completata. |
STOR_STATUS_INSUFFICIENT_RESOURCES | L'operazione non è riuscita a allocare la memoria richiesta a causa di risorse insufficienti. |
Commenti
Se la richiesta ha esito negativo, BufferPointer verrà impostato su NULL.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 (versione 1803) |
Piattaforma di destinazione | Universale |
Intestazione | Storport.h |
Regole di conformità DDI | StorPortIrql |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per