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 |