Condividi tramite


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

Vedi anche