Share via


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 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 da eseguire. Usare la macro ZwCurrentProcess per specificare il processo corrente.

[in, optional] BaseAddress

Indirizzo di base dell'area delle pagine da eseguire query. Questo valore viene arrotondato fino al limite dell'indirizzo della pagina host successivo.

[in] MemoryInformationClass

Classe di informazioni sulla memoria su cui recuperare 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 . Quando il valore MemoryBasicInformation viene passato a MemoryInformationClass, il valore del parametro MemoryInformation è una struttura MEMORY_BASIC_INFORMATION .

[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 ha esito negativo, 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 è maggiore di MemoryInformationLength.
STATUS_INVALID_INFO_CLASS Un valore diverso da MemoryBasicInformation è stato passato al parametro MemoryInformationClass .

Commenti

ZwQueryVirtualMemory determina lo stato della prima pagina all'interno dell'area e quindi analizza le voci successive nella mappa degli indirizzi del processo dall'indirizzo di base verso l'alto fino all'intero intervallo di pagine o fino a quando non viene rilevato un set di attributi non corrispondente. Gli attributi dell'area, la lunghezza delle pagine con attributi corrispondenti e un valore di stato appropriato vengono restituiti.

Se l'intera area delle pagine non ha un set di attributi corrispondente, il valore del parametro ReturnLength può essere usato per calcolare l'indirizzo e la lunghezza dell'area delle pagine che non sono state analizzate.

NtQueryVirtualMemory e ZwQueryVirtualMemory sono due versioni della stessa routine di Windows Native System Services.

Per le chiamate dai driver in modalità kernel, le versioni NtXxx* e ZwXxx* di una routine di Windows Native System Services 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 Uso di nt e zw versioni delle routine di Servizi di sistema nativo.

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Piattaforma di destinazione Universale
Intestazione ntifs.h
Libreria NtosKrnl.lib
DLL NtosKrnl.exe

Vedi anche

POWER_PLATFORM_INFORMATION