Condividi tramite


Funzione MmAllocateContiguousMemoryEx (wdm.h)

La funzione MmAllocateContiguousMemoryEx alloca un intervallo di memoria fisicamente contigua non di paging e ne 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

In caso di immissione, fornisce il numero di byte da allocare. In caso di restituzione riuscita, 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 memoria contigua desiderata solo se può essere soddisfatta rapidamente. Se la ricerca e il trading della memoria fisica prolungati devono avere luogo 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.

Osservazioni

Questa memoria deve essere liberata con MmFreeContiguousMemory.

Fabbisogno

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

Vedere anche

MmFreeContiguousMemory