Condividi tramite


Funzione GetWsChanges (psapi.h)

Recupera informazioni sulle pagine aggiunte al set di lavoro del processo specificato dall'ultima volta che questa funzione o la funzione InitializeProcessForWsWatch è stata chiamata.

Per recuperare informazioni estese, usare la funzione GetWsChangesEx .

Sintassi

BOOL GetWsChanges(
  [in]  HANDLE                      hProcess,
  [out] PPSAPI_WS_WATCH_INFORMATION lpWatchInfo,
  [in]  DWORD                       cb
);

Parametri

[in] hProcess

Handle per il processo. L'handle deve avere il diritto di accesso PROCESS_QUERY_INFORMATION . Per altre informazioni, vedere Elaborare diritti di sicurezza e accesso.

[out] lpWatchInfo

Puntatore a un buffer allocato dall'utente che riceve una matrice di strutture PSAPI_WS_WATCH_INFORMATION . La matrice viene terminata con una struttura il cui membro FaultingPc è NULL.

[in] cb

Dimensioni del buffer lpWatchInfo , in byte.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

GetLastError restituisce ERROR_INSUFFICIENT_BUFFER se il buffer lpWatchInfo non è abbastanza grande per contenere tutti i record di modifica del set di lavoro; il buffer viene restituito vuoto. Riallocare un blocco di memoria più grande per il buffer e chiamare di nuovo.

Commenti

Il sistema operativo usa un buffer per ogni processo per mantenere i record di modifica del set di lavoro. Se più di un'applicazione (o più thread nella stessa applicazione) chiama questa funzione con lo stesso handle di processo, né l'applicazione avrà una contabilità completa del set di lavoro perché ogni chiamata svuota il buffer.

Il sistema operativo non registra nuovi record di modifica durante l'elaborazione della query e l'svuotamento del buffer. La funzione imposta il codice di errore su NO_MORE_ENTRIES se viene ricevuta una query simultanea durante l'elaborazione di un'altra query.

Se il buffer diventa pieno, non vengono aggiunti nuovi record al buffer finché non viene chiamata questa funzione o la funzione InitializeProcessForWsWatch . È consigliabile chiamare questo metodo con frequenza sufficiente per evitare possibili perdite di dati. Se i record vengono persi, la matrice viene terminata con una struttura il cui membro FaultingPc è NULL e il cui membro FaultingVa è impostato sul numero di record persi.

Windows Server 2003 e Windows XP: Se i record vengono persi, la matrice viene terminata con una struttura il cui membro FaultingPc è NULL e il cui membro FaultingVa è 1.

A partire da Windows 7 e Windows Server 2008 R2, Psapi.h stabilisce i numeri di versione per le funzioni PSAPI. Il numero di versione PSAPI influisce sul nome usato per chiamare la funzione e la libreria che un programma deve caricare.

Se PSAPI_VERSION è 2 o versione successiva, questa funzione viene definita come K32GetWsChanges in Psapi.h ed esportata in Kernel32.lib e Kernel32.dll. Se PSAPI_VERSION è 1, questa funzione viene definita come GetWsChanges in Psapi.h ed esportata in Psapi.lib e Psapi.dll come wrapper che chiama K32GetWsChanges.

I programmi che devono essere eseguiti nelle versioni precedenti di Windows e windows 7 e versioni successive devono sempre chiamare questa funzione come GetWsChanges. Per garantire la risoluzione corretta dei simboli, aggiungere Psapi.lib alla macro TARGETLIBS e compilare il programma con -DPSAPI_VERSION=1. Per usare il collegamento dinamico in fase di esecuzione, caricare Psapi.dll.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione psapi.h
Libreria Kernel32.lib in Windows 7 e Windows Server 2008 R2; Psapi.lib (se PSAPI_VERSION=1) in Windows 7 e Windows Server 2008 R2; Psapi.lib in Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP
DLL Kernel32.dll in Windows 7 e Windows Server 2008 R2; Psapi.dll (se PSAPI_VERSION=1) in Windows 7 e Windows Server 2008 R2; Psapi.dll in Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP

Vedi anche

EnumProcesses

InitializeProcessForWsWatch

Funzioni PSAPI

PSAPI_WS_WATCH_INFORMATION

Informazioni sul set di lavoro