Funzione MmSecureVirtualMemoryEx (ntddk.h)
Questa routine esegue il probe dell'intervallo di indirizzi richiesto e protegge l'intervallo di indirizzi specificato dal fatto che la protezione sia stata più restrittiva e eliminata.
Sintassi
HANDLE MmSecureVirtualMemoryEx(
PVOID Address,
SIZE_T Size,
ULONG ProbeMode,
ULONG Flags
);
Parametri
Address
Puntatore all'indirizzo di base per il probe e la sicurezza.
Size
Specifica le dimensioni, in byte, dell'intervallo da proteggere.
ProbeMode
Specifica la protezione della pagina più restrittiva consentita. Usare PAGE_READWRITE per specificare che l'intervallo di indirizzi deve rimanere leggibile e scrivibile oppure usare 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. Tutte le altre modifiche di protezione sono consentite. |
PAGE_READONLY | La protezione non può essere modificata in PAGE_NOACCESS. Tutte le altre modifiche di protezione sono consentite. |
Flags
Specifica uno o più flag seguenti:
Flag | Descrizione |
---|---|
MM_SECURE_EXCLUSIVE | La protezione ha esito positivo solo se non sono già presenti altri sicuri già aggiunti ovunque sul VAD in questione. |
MM_SECURE_NO_CHANGE | Dopo l'applicazione, non sono consentite modifiche di protezione per l'area dell'indirizzo virtuale specificata. L'area può comunque essere eliminata se il processo viene chiuso. |
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 l'intervallo non è stato bloccato a causa di problemi di protezione, memoria non commessa o parametri non validi, questa routine restituisce NULL.
Commenti
Usare MmSecureVirtualMemoryEx anziché MmSecureVirtualMemory se è necessario specificare MM_SECURE_NO_CHANGE in modo che non sia consentita alcuna modifica di protezione nella visualizzazione fornita.
Il valore restituito di questa funzione può essere usato solo con MmUnsecureVirtualMemory. Il driver chiama tale routine per restituire l'intervallo a uno stato normale.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10, versione 1809 |
Intestazione | ntddk.h |
IRQL | APC_LEVEL |