Funzione MmSecureVirtualMemoryEx (ntddk.h)
Questa routine esegue il probe dell'intervallo di indirizzi richiesto e protegge l'intervallo di indirizzi specificato dalla protezione resa più restrittiva e eliminata.
Sintassi
HANDLE MmSecureVirtualMemoryEx(
PVOID Address,
SIZE_T Size,
ULONG ProbeMode,
ULONG Flags
);
Parametri
Address
Puntatore all'indirizzo di base per eseguire il probe e proteggere.
Size
Specifica le dimensioni, in byte, dell'intervallo da proteggere.
ProbeMode
Specifica la protezione della pagina più restrittiva consentita. Utilizzare PAGE_READWRITE per specificare che l'intervallo di indirizzi deve rimanere leggibile e scrivibile oppure utilizzare PAGE_READONLY per specificare che l'intervallo di indirizzi deve rimanere leggibile solo.
ProbeMode | Significato |
---|---|
PAGE_READWRITE | La protezione non può essere modificata in PAGE_NOACCESS o PAGE_READONLY. Sono consentite tutte le altre modifiche alla protezione. |
PAGE_READONLY | La protezione non può essere modificata in PAGE_NOACCESS. Sono consentite tutte le altre modifiche alla protezione. |
Flags
Specifica uno o più flag seguenti:
Bandiera | Descrizione |
---|---|
MM_SECURE_EXCLUSIVE | La protezione ha esito positivo solo se non ci sono altri sicuri già aggiunti nel VAD in questione. |
MM_SECURE_NO_CHANGE | Dopo l'applicazione, non sono consentite modifiche alla protezione per l'area dell'indirizzo virtuale fornita. L'area può comunque essere eliminata se il processo è in uscita. |
MM_SECURE_USER_MODE_ONLY | La protezione specificata da questa protezione verrà applicata solo alle chiamate successive dalla modalità utente che tentano di modificare la protezione (i chiamanti in modalità kernel ignorano questa protezione). |
MM_SECURE_NO_INHERIT | Se il processo viene clonato, a differenza del processo padre, il VAD del processo figlio non verrà protetto. |
Valore restituito
Restituisce un valore simile a un handle da utilizzare solo per annullare la protezione dell'intervallo.
Se non è stato possibile bloccare l'intervallo a causa di problemi di protezione, memoria non generata o parametri non validi, questa routine restituisce NULL.
Osservazioni
Usare MmSecureVirtualMemoryEx invece di MmSecureVirtualMemory se è necessario specificare MM_SECURE_NO_CHANGE in modo che non sia consentita alcuna modifica di protezione nella visualizzazione fornita.
Il valore restituito da questa funzione può essere usato solo con MmUnsecureVirtualMemory. Il driver chiama tale routine per restituire l'intervallo a uno stato normale.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10, versione 1809 |
intestazione | ntddk.h |
IRQL | APC_LEVEL |