Condividi tramite


Funzione AllocateUserPhysicalPages2 (memoryapi.h)

Alloca le pagine di memoria fisica da mappare e annullare il mapping all'interno di qualsiasi area AWE (Address Windowing Extensions) di un processo specificato, con parametri estesi.

Sintassi

BOOL AllocateUserPhysicalPages2(
  [in]     HANDLE                  ObjectHandle,
  [in,out] PULONG_PTR              NumberOfPages,
  [out]    PULONG_PTR              PageArray,
  [in,out] PMEM_EXTENDED_PARAMETER ExtendedParameters,
  [in]     ULONG                   ExtendedParameterCount
);

Parametri

[in] ObjectHandle

Handle a un processo.

La funzione alloca memoria che può essere mappata in un secondo momento all'interno dello spazio indirizzi virtuale di questo processo. L'handle deve avere il diritto di accesso PROCESS_VM_OPERATION . Per altre informazioni, vedere Elaborare diritti di sicurezza e accesso.

[in,out] NumberOfPages

Dimensioni della memoria fisica da allocare nelle pagine.

Per determinare le dimensioni della pagina del computer, usare la funzione GetSystemInfo . In output, questo parametro riceve il numero di pagine effettivamente allocate, che potrebbero essere inferiori al numero richiesto.

[out] PageArray

Puntatore a una matrice per archiviare i numeri di frame di pagina della memoria allocata.

Le dimensioni della matrice allocata devono essere almeno il numeroOfPages volte le dimensioni del tipo di dati ULONG_PTR .

Non tentare di modificare questo buffer. Contiene dati del sistema operativo e il danneggiamento potrebbe essere irreversibile. Le informazioni nel buffer non sono utili per un'applicazione.

[in,out] ExtendedParameters

Puntatore a una matrice di strutture MEM_EXTENDED_PARAMETER .

[in] ExtendedParameterCount

Numero di MEM_EXTENDED_PARAMETER nella matrice ExtendedParameters .

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

È possibile allocare meno pagine di quelle richieste. Il chiamante deve controllare il valore del parametro NumberOfPages in modo da visualizzare il numero di pagine allocato. Tutti i numeri di frame di pagina allocati vengono posizionati in sequenza nella memoria a cui punta il parametro UserPfnArray .

Se la funzione ha esito negativo, il valore restituito è FALSE e non vengono allocati fotogrammi. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

AllocateUserPhysicalPages2 è uguale a AllocateUserPhysicalPages, ma aggiunge i parametri ExtendedParameters e ExtendedParameterCount.

La funzione AllocateUserPhysicalPages2 viene usata per allocare memoria fisica che può essere mappata successivamente all'interno dello spazio indirizzi virtuale del processo. Il privilegio SeLockMemoryPrivilege deve essere abilitato nel token del chiamante o la funzione avrà esito negativo con ERROR_PRIVILEGE_NOT_HELD. Per altre informazioni, vedere Costanti dei privilegi.

La memoria allocata da questa funzione deve essere fisicamente presente nel sistema. Dopo l'allocazione della memoria, viene bloccato e non disponibile al resto del sistema di gestione della memoria virtuale.

Le pagine fisiche non possono essere mappate simultaneamente a più indirizzi virtuali.

Le pagine fisiche possono risiedere in qualsiasi indirizzo fisico. Non è consigliabile prendere presupposti sulla contiguità delle pagine fisiche.

Requisiti

   
Client minimo supportato Windows 11, Build 20348
Server minimo supportato Windows Server, Build 20348
Intestazione memoryapi.h
Libreria onecore.lib
DLL kernelbase.dll

Vedi anche

AllocateUserPhysicalPages

Estensioni di finestra degli indirizzi

AllocateUserPhysicalPagesNuma

FreeUserPhysicalPages

MapUserPhysicalPages

MapUserPhysicalPagesScatter

Funzioni di gestione della memoria