Funzione ZwQueryVirtualMemory (ntifs.h)
La routine ZwQueryVirtualMemory determina lo stato, la protezione e il tipo di un'area di pagine all'interno dello spazio indirizzi virtuale del processo del soggetto.
Sintassi
NTSYSAPI NTSTATUS ZwQueryVirtualMemory(
[in] HANDLE ProcessHandle,
[in, optional] PVOID BaseAddress,
[in] MEMORY_INFORMATION_CLASS MemoryInformationClass,
[out] PVOID MemoryInformation,
[in] SIZE_T MemoryInformationLength,
[out, optional] PSIZE_T ReturnLength
);
Parametri
[in] ProcessHandle
Handle per il processo nel cui contesto risiedono le pagine su cui eseguire query. Utilizzare la macro
[in, optional] BaseAddress
Indirizzo di base dell'area delle pagine su cui eseguire una query. Questo valore viene arrotondato per difetto al limite successivo dell'indirizzo della pagina host.
[in] MemoryInformationClass
Classe di informazioni sulla memoria su cui recuperare le informazioni. Attualmente, l'unico valore MEMORY_INFORMATION_CLASS supportato è MemoryBasicInformation.
[out] MemoryInformation
Puntatore a un buffer che riceve le informazioni specificate. Il formato e il contenuto del buffer dipendono dalla classe di informazioni specificata nel parametro MemoryInformationClass
[in] MemoryInformationLength
Specifica la lunghezza in byte del buffer delle informazioni sulla memoria.
[out, optional] ReturnLength
Puntatore facoltativo che, se specificato, riceve il numero di byte inseriti nel buffer delle informazioni sulla memoria.
Valore restituito
Restituisce STATUS_SUCCESS se la chiamata ha esito positivo. Se la chiamata non riesce, i codici di errore possibili includono quanto segue:
Codice restituito | Descrizione |
---|---|
STATUS_INVALID_PARAMETER | L'indirizzo di base specificato non è compreso nell'intervallo di indirizzi accessibili. |
STATUS_ACCESS_DENIED | Il chiamante aveva diritti di accesso insufficienti per eseguire l'azione richiesta. |
STATUS_INFO_LENGTH_MISMATCH | Il buffer MemoryInformation |
STATUS_INVALID_INFO_CLASS | Un valore diverso da |
Osservazioni
ZwQueryVirtualMemory determina lo stato della prima pagina all'interno dell'area e quindi analizza le voci successive nella mappa degli indirizzi del processo dall'alto fino a quando non viene eseguita l'analisi dell'intero intervallo di pagine o fino a quando non viene rilevata una pagina con un set di attributi non corrispondente. Gli attributi dell'area, la lunghezza dell'area delle pagine con attributi corrispondenti e vengono restituiti un valore di stato appropriato.
Se l'intera area delle pagine non dispone di un set di attributi corrispondente, è possibile usare il valore del parametro ReturnLength per calcolare l'indirizzo e la lunghezza dell'area delle pagine non analizzate.
ntQueryVirtualMemory e ZwQueryVirtualMemory sono due versioni della stessa routine di Servizi di sistema nativi di Windows.
Per le chiamate da driver in modalità kernel, le versioni nt NtXxx} e ZwXxx} di una routine di Servizi di sistema nativi di Windows possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10 |
piattaforma di destinazione | Universale |
intestazione |
ntifs.h |
libreria |
NtosKrnl.lib |
dll | NtosKrnl.exe |