DumpLogRecords, fonction (clfsw32.h)

Analyse un journal spécifié ; filtre les enregistrements de journal en fonction du type d’enregistrement ; et place les enregistrements dans un flux de fichier de sortie que l’appelant ouvre.

Syntaxe

CLFSUSER_API BOOL DumpLogRecords(
  [in]           PWSTR                     pwszLogFileName,
  [in]           CLFS_RECORD_TYPE          fRecordType,
  [in, optional] PCLFS_LSN                 plsnStart,
  [in, optional] PCLFS_LSN                 plsnEnd,
  [in, optional] PFILE                     pstrmOut,
  [in, optional] CLFS_PRINT_RECORD_ROUTINE pfnPrintRecord,
  [in, optional] CLFS_BLOCK_ALLOCATION     pfnAllocBlock,
  [in, optional] CLFS_BLOCK_DEALLOCATION   pfnFreeBlock,
  [in, optional] PVOID                     pvBlockAllocContext,
  [in]           ULONG                     cbBlock,
  [in]           ULONG                     cMaxBlocks
);

Paramètres

[in] pwszLogFileName

Nom du flux de journal.

Ce nom est spécifié lorsque vous créez le journal à l’aide de CreateLogFile. L’exemple suivant identifie le format à utiliser :

rapport:<nom du>journal[ ::nom du< flux de journal]>

<nom> du journal correspond à un chemin d’accès de fichier valide dans le système de fichiers.

<nom >du flux de journal est le nom unique d’un flux de journal dans le journal.

Pour plus d’informations, consultez Types de journaux.

[in] fRecordType

Type d’enregistrements à lire.

Ce paramètre peut être une ou plusieurs des constantes CLFS_RECORD_TYPE suivantes.

Valeur Signification
ClfsNullRecord
Le type d’enregistrement par défaut de ClfsDataRecord est utilisé.
ClfsDataRecord
Les enregistrements de données utilisateur sont lus.
ClfsRestartRecord
Les enregistrements de redémarrage sont lus.
ClfsClientRecord
Les enregistrements de redémarrage et de données sont lus.
ClfsClientRecord
Spécifie un masque pour tous les enregistrements de données ou de redémarrage valides.

[in, optional] plsnStart

Pointeur vers un CLFS_LSN qui spécifie le numéro séquentiel du journal (LSN) de départ pour la séquence de vidage du journal.

Si ce paramètre est spécifié, le LSN doit être l’adresse d’un enregistrement de journal valide dans la partie active du journal ; sinon, l’appel échoue avec status ERROR_INVALID_PARAMETER.

Si ce paramètre n’est pas spécifié, le début de la séquence de vidage est le début du journal actif.

[in, optional] plsnEnd

Pointeur vers un CLFS_LSN qui spécifie le LSN où la séquence de vidage doit se terminer.

Si ce LSN dépasse la fin de la plage LSN, la fonction retourne ERROR_HANDLE_EOF.

Contrairement à plsnStart, cette valeur n’a pas besoin d’être le LSN d’un enregistrement valide dans le journal actif, mais il peut s’agir d’un LSN valide. Seuls les enregistrements dont la valeur LSN est inférieure ou égale à plsnEnd sont placés dans le flux de sortie.

Si ce paramètre a la valeur NULL, la fonction de vidage utilise le dernier LSN dans le journal actif (en tête du journal).

[in, optional] pstrmOut

Pointeur vers un flux de sortie ouvert où les enregistrements de journal sont placés.

Si ce paramètre n’est pas spécifié, « stdout » est utilisé comme valeur par défaut.

[in, optional] pfnPrintRecord

Routine de rappel définie par l’utilisateur qui met en forme les mémoires tampons définies par l’utilisateur et les imprime dans le flux de sortie pstrmOut.

La fonction DumpLogRecords génère en mode natif ses en-têtes d’enregistrement internes vers pstrmOut, mais dépend du rappel défini par l’utilisateur pour mettre en forme les mémoires tampons utilisateur.

Si ce paramètre a la valeur NULL, DumpLogRecords place les données d’enregistrement utilisateur dans le flux de sortie sous forme de chiffres hexadécimaux.

[in, optional] pfnAllocBlock

Fonction de rappel qui alloue de la mémoire pour les blocs de journal.

Si ce paramètre a la valeur NULL, Common Log File System (CLFS) fournit une fonction d’allocation de blocs par défaut. Ce paramètre ne peut pas être NULL si un rappel sans bloc est spécifié à l’aide du paramètre pfnFreeBuffer .

L’exemple suivant identifie la syntaxe de la fonction de rappel d’allocation de blocs :

typedef PVOID (* CLFS_BLOCK_ALLOCATION) (voidULONG cbBufferSize, PVOID pvUserContext);

[in, optional] pfnFreeBlock

Fonction de rappel qui libère les blocs de journal alloués par pfnAllocBuffer.

Si ce paramètre a la valeur NULL, CLFS fournit une fonction de désallocation de bloc par défaut. Ce paramètre ne peut pas être NULL si un rappel d’allocation de blocs est spécifié à l’aide du paramètre pfnAllocBuffer .

L’exemple suivant identifie la syntaxe de la fonction de rappel sans bloc :

typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);

Le paramètre de mémoire tampon de « ClfsBlockDeallocProc » doit pointer vers un bloc alloué à l’aide du rappel pointé par pfnAllocBuffer.

[in, optional] pvBlockAllocContext

Pointeur vers une mémoire tampon qui est passée en tant que contexte utilisateur aux routines d’allocation et de désallocation de blocs, si une mémoire tampon est spécifiée.

Si pfnAllocBuffer a la valeur NULL, ce paramètre est ignoré.

[in] cbBlock

Taille de la mémoire tampon dans laquelle vos enregistrements sont marshalés, en octets.

Les enregistrements ne peuvent pas être ajoutés ou lus s’ils sont plus longs que cette valeur.

[in] cMaxBlocks

Nombre maximal de blocs pouvant être alloués à tout moment pour les opérations de lecture.

Les contextes de lecture utilisent au moins un bloc de lecture.

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 (0). Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError. La liste suivante identifie les codes d’erreur possibles :

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête clfsw32.h
Bibliothèque Clfsw32.lib
DLL Clfsw32.dll

Voir aussi

CLFS_LSN

CLFS_RECORD_TYPE

Fonctions courantes du système de fichiers journaux