Partager via


GetWsChangesEx, fonction (psapi.h)

Récupère des informations étendues sur les pages qui ont été ajoutées au jeu de travail du processus spécifié depuis la dernière fois que cette fonction ou la fonction InitializeProcessForWsWatch a été appelée.

Syntaxe

BOOL GetWsChangesEx(
  [in]      HANDLE                         hProcess,
  [out]     PPSAPI_WS_WATCH_INFORMATION_EX lpWatchInfoEx,
  [in, out] PDWORD                         cb
);

Paramètres

[in] hProcess

Handle du processus. Le handle doit avoir le droit d’accès PROCESS_QUERY_INFORMATION . Pour plus d’informations, consultez Traiter les droits de sécurité et d’accès.

[out] lpWatchInfoEx

Pointeur vers une mémoire tampon allouée par l’utilisateur qui reçoit un tableau de
PSAPI_WS_WATCH_INFORMATION_EX structures. Le tableau se termine par une structure dont le membre FaultingPc est NULL.

[in, out] cb

Taille de la mémoire tampon lpWatchInfoEx , en octets.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez la fonction GetLastError.

La fonction GetLastError retourne ERROR_INSUFFICIENT_BUFFER si la mémoire tampon lpWatchInfoEx n’est pas assez grande pour contenir tous les enregistrements de modification du jeu de travail ; la mémoire tampon est retournée vide. Réallouer un bloc de mémoire plus grand pour la mémoire tampon et appeler à nouveau.

Remarques

Le système d’exploitation utilise une mémoire tampon par processus pour gérer les enregistrements de modifications de jeu de travail. Si plusieurs applications (ou plusieurs threads dans la même application) appellent cette fonction avec le même handle de processus, aucune des deux applications n’aura une comptabilité complète des modifications de l’ensemble de travail, car chaque appel vide la mémoire tampon.

Le système d’exploitation n’enregistre pas les nouveaux enregistrements de modification pendant le traitement de la requête (et la vidage de la mémoire tampon). Cette fonction définit le code d’erreur sur NO_MORE_ENTRIES si une requête simultanée est reçue pendant le traitement d’une autre requête.

Si la mémoire tampon devient pleine, aucun nouvel enregistrement n’est ajouté à la mémoire tampon tant que cette fonction ou la fonction InitializeProcessForWsWatch n’est pas appelée. Vous devez appeler GetWsChangesEx avec suffisamment de fréquence pour éviter toute perte de données. Si des enregistrements sont perdus, le tableau se termine par une structure dont le membre FaultingPc est NULL et dont le membre FaultingVa est défini sur le nombre d’enregistrements perdus.

À compter de Windows 7 et Windows Server 2008 R2, Psapi.h établit les numéros de version pour les fonctions PSAPI. Le numéro de version PSAPI affecte le nom utilisé pour appeler la fonction et la bibliothèque qu’un programme doit charger.

Si PSAPI_VERSION est égal ou supérieur à 2, cette fonction est définie comme K32GetWsChangesEx dans Psapi.h et exportée dans Kernel32.lib et Kernel32.dll. Si PSAPI_VERSION a la valeur 1, cette fonction est définie comme GetWsChangesEx dans Psapi.h et exportée dans Psapi.lib et Psapi.dll en tant que wrapper qui appelle K32GetWsChangesEx.

Les programmes qui doivent s’exécuter sur des versions antérieures de Windows, de Windows 7 et versions ultérieures doivent toujours appeler cette fonction GetWsChangesEx. Pour garantir une résolution correcte des symboles, ajoutez Psapi.lib à la macro TARGETLIBS et compilez le programme avec -DPSAPI_VERSION=1. Pour utiliser la liaison dynamique au moment de l’exécution, chargez Psapi.dll.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête psapi.h
Bibliothèque Kernel32.lib sur Windows 7 et Windows Server 2008 R2 ; Psapi.lib (si PSAPI_VERSION=1) sur Windows 7 et Windows Server 2008 R2 ; Psapi.lib sur Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP
DLL Kernel32.dll sur Windows 7 et Windows Server 2008 R2 ; Psapi.dll (si PSAPI_VERSION=1) sur Windows 7 et Windows Server 2008 R2 ; Psapi.dll sur Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP

Voir aussi

EnumProcesses

InitializeProcessForWsWatch

Fonctions PSAPI

PSAPI_WS_WATCH_INFORMATION_EX

Informations sur les ensembles de travail