Condividi tramite


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

Vedere anche