Compartir a través de


Función GetWsChanges (psapi.h)

Recupera información sobre las páginas que se han agregado al conjunto de trabajo del proceso especificado desde la última vez que se llamó a esta función o a la función InitializeProcessForWsWatch .

Para recuperar información extendida, use la función GetWsChangesEx .

Sintaxis

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

Parámetros

[in] hProcess

Identificador del proceso. El identificador debe tener el derecho de acceso PROCESS_QUERY_INFORMATION. Para obtener más información, consulte Derechos de acceso y seguridad de procesos.

[out] lpWatchInfo

Puntero a un búfer asignado por el usuario que recibe una matriz de estructuras de PSAPI_WS_WATCH_INFORMATION . La matriz finaliza con una estructura cuyo miembro FaultingPc es NULL.

[in] cb

Tamaño del búfer lpWatchInfo , en bytes.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

GetLastError devuelve ERROR_INSUFFICIENT_BUFFER si el búfer lpWatchInfo no es lo suficientemente grande como para contener todos los registros de cambios del conjunto de trabajo; el búfer se devuelve vacío. Reasignar un bloque de memoria mayor para el búfer y volver a llamar a .

Comentarios

El sistema operativo usa un búfer por proceso para mantener los registros de cambios del conjunto de trabajo. Si más de una aplicación (o varios subprocesos de la misma aplicación) llama a esta función con el mismo identificador de proceso, ninguna aplicación tendrá una contabilidad completa de los cambios del conjunto de trabajo porque cada llamada vacía el búfer.

El sistema operativo no registra nuevos registros de cambios mientras procesa la consulta (y vacía el búfer). La función establece el código de error en NO_MORE_ENTRIES si se recibe una consulta simultánea mientras procesa otra consulta.

Si el búfer se llena, no se agregan registros nuevos al búfer hasta que se llame a esta función o a la función InitializeProcessForWsWatch . Debe llamar a este método con suficiente frecuencia para evitar la posible pérdida de datos. Si se pierden registros, la matriz finaliza con una estructura cuyo miembro FaultingPc es NULL y cuyo miembro FaultingVa se establece en el número de registros que se han perdido.

Windows Server 2003 y Windows XP: Si se pierden registros, la matriz finaliza con una estructura cuyo miembro FaultingPc es NULL y cuyo miembro FaultingVa es 1.

A partir de Windows 7 y Windows Server 2008 R2, Psapi.h establece números de versión para las funciones DE PSAPI. El número de versión de PSAPI afecta al nombre utilizado para llamar a la función y a la biblioteca que debe cargar un programa.

Si PSAPI_VERSION es 2 o superior, esta función se define como K32GetWsChanges en Psapi.h y exportada en Kernel32.lib y Kernel32.dll. Si PSAPI_VERSION es 1, esta función se define como GetWsChanges en Psapi.h y exportada en Psapi.lib y Psapi.dll como contenedor que llama a K32GetWsChanges.

Los programas que deben ejecutarse en versiones anteriores de Windows, así como Windows 7 y versiones posteriores, siempre deben llamar a esta función como GetWsChanges. Para garantizar la resolución correcta de símbolos, agregue Psapi.lib a la macro TARGETLIBS y compile el programa con -DPSAPI_VERSION=1. Para usar la vinculación dinámica en tiempo de ejecución, cargue Psapi.dll.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado psapi.h
Library Kernel32.lib en Windows 7 y Windows Server 2008 R2; Psapi.lib (si PSAPI_VERSION=1) en Windows 7 y Windows Server 2008 R2; Psapi.lib en Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP
Archivo DLL Kernel32.dll en Windows 7 y Windows Server 2008 R2; Psapi.dll (si PSAPI_VERSION=1) en Windows 7 y Windows Server 2008 R2; Psapi.dll en Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP

Consulte también

EnumProcesses

InitializeProcessForWsWatch

Funciones PSAPI

PSAPI_WS_WATCH_INFORMATION

Información del conjunto de trabajo