Condividi tramite


Funzione MmAllocateContiguousMemoryEx (wdm.h)

La funzione MmAllocateContiguousMemoryEx alloca un intervallo di memoria fisicamente contigua non di paging e restituisce l'indirizzo virtuale.

Sintassi

NTSTATUS MmAllocateContiguousMemoryEx(
  [in]           PSIZE_T          NumberOfBytes,
  [in]           PHYSICAL_ADDRESS LowestAcceptableAddress,
  [in]           PHYSICAL_ADDRESS HighestAcceptableAddress,
  [in]           PHYSICAL_ADDRESS BoundaryAddressMultiple,
  [in]           NODE_REQUIREMENT PreferredNode,
  [in]           ULONG            Protect,
  [in, optional] PVOID            PartitionObject,
  [in]           ULONG            Tag,
  [in]           ULONG            Flags,
  [out]          PVOID            *BaseAddress
);

Parametri

[in] NumberOfBytes

Nella voce specifica il numero di byte da allocare. Al termine della restituzione, riceve l'importo allocato.

[in] LowestAcceptableAddress

Fornisce l'indirizzo fisico più basso valido per l'allocazione. Ad esempio, se il dispositivo può fare riferimento solo alla memoria fisica nell'intervallo da 8M a 16 MB, questo valore verrà impostato su 0x800000 (8 Mb).

[in] HighestAcceptableAddress

Fornisce l'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] BoundaryAddressMultiple

Fornisce l'indirizzo fisico multiplo di questa allocazione non deve attraversare.

[in] PreferredNode

Fornisce il nodo preferito da cui deve essere eseguita l'allocazione se le pagine sono disponibili in tale nodo. MM_ANY_NODE_OK viene usato per indicare nessuna preferenza di nodo.

[in] Protect

Fornisce la protezione desiderata (incluso il tipo di cache) per il mapping.

[in, optional] PartitionObject

Se specificato, fornisce un oggetto partizione da cui allocare la memoria fisica. Se non specificato, la memoria proviene dalla partizione di sistema.

[in] Tag

Fornisce il tag per l'allocazione.

[in] Flags

Vari flag:

  • MM_ALLOCATE_CONTIGUOUS_MEMORY_FAST_ONLY : allocare la memoria contigua desiderata solo se può essere soddisfatta rapidamente. Non riuscire se la ricerca prolungata della memoria fisica e il trading devono essere eseguiti per soddisfare l'allocazione.

[out] BaseAddress

In caso di esito positivo, riceve l'indirizzo virtuale di base della memoria contigua.

Valore restituito

Restituisce un codice NTSTATUS.

Commenti

Questa memoria deve essere liberata con MmFreeContiguousMemory.

Requisiti

Requisito Valore
Server minimo supportato Windows Server 2022
Intestazione wdm.h
IRQL <= DISPATCH_LEVEL

Vedi anche

MmFreeContiguousMemory