Come faccio a livello di programmazione determinare lo spazio massimo in modalità utente del (Windows) OS?
-
23-08-2019 - |
Domanda
Sto scrivendo un'applicazione diagnostica che ha bisogno di registrare ciò che l'utente ha impostato come il suo spazio in modalità utente user-mode anche noto come spazio di indirizzi virtuali anche noto come l'opzione / 3GB in WinXP o l'interruttore increaseuserva in bcdedit su Vista / Win7.
Uno di C ++ o C ++ / CLI farà.
Tutte le idee?
Soluzione
GlobalMemoryStatusEx vi darà un < a href = "http://msdn.microsoft.com/en-us/library/aa366770(VS.85).aspx" rel = "nofollow noreferrer"> MEMORYSTATUSEX struct con ullTotalVirtual
:
La dimensione della parte in modalità utente dello spazio di indirizzi virtuali del processo chiamante, in byte. Questo valore dipende dal tipo di processo, il tipo di processore, e la configurazione del sistema operativo. Ad esempio, questo valore è di circa 2 GB per la maggior parte dei processi a 32 bit su un processore x86 e circa 3 GB per processi a 32 bit che sono grandi indirizzo consapevoli esecuzione su un sistema con 4 gigabyte sintonizzazione abilitato.
Si noti che avresti dovuto segnare il tuo EXE come LARGEADDRESSAWARE al fine di vedere 3GB nel vostro processo .
Credo che ci sia un'altra funzione che restituisce anche queste informazioni (no - non GlobalMemoryStatus che è deprecato) insieme a informazioni di processore - ma non riesco a ricordarlo ATM.