Fonction ClfsWriteRestartArea (wdm.h)

La routine ClfsWriteRestartArea ajoute atomiquement un nouvel enregistrement de redémarrage à un flux CLFS, vide l’enregistrement de redémarrage dans un stockage stable et met éventuellement à jour le LSN de base du flux.

Syntaxe

CLFSUSER_API NTSTATUS ClfsWriteRestartArea(
  [in, out]       PVOID     pvMarshalContext,
  [in]            PVOID     pvRestartBuffer,
  [in]            ULONG     cbRestartBuffer,
  [in, optional]  PCLFS_LSN plsnBase,
  [in]            ULONG     fFlags,
  [out, optional] PULONG    pcbWritten,
  [out, optional] PCLFS_LSN plsnNext
);

Paramètres

[in, out] pvMarshalContext

Pointeur vers un contexte opaque qui représente une zone de marshaling associée à un flux CLFS. L’appelant a précédemment obtenu ce pointeur en appelant ClfsCreateMarshallingArea.

[in] pvRestartBuffer

Pointeur vers une mémoire tampon qui contient les données de l’enregistrement de redémarrage.

[in] cbRestartBuffer

Taille, en octets, de la mémoire tampon pointée vers pvRestartBuffer. Il s’agit de la taille des données de redémarrage.

[in, optional] plsnBase

Pointeur vers une structure CLFS_LSN qui spécifie un nouveau LSN de base pour le flux. Si ce paramètre a la valeur NULL, le LSN de base n’est pas modifié.

[in] fFlags

Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
0 L’enregistrement de redémarrage est placé dans l’espace nouvellement alloué dans un bloc d’E/S. Le nombre d’enregistrements réservés dans la zone de marshaling n’est pas modifié.
CLFS_FLAG_USE_RESERVATION L’enregistrement de redémarrage est placé dans un espace précédemment réservé dans un bloc d’E/S. Le nombre d’enregistrements réservés dans la zone de marshaling est réduit d’un seul.

[out, optional] pcbWritten

Pointeur vers une variable de type ULONG qui reçoit le nombre d’octets réellement forcés vers un stockage stable. Ce paramètre peut être NULL.

[out, optional] plsnNext

Pointeur vers une structure CLFS_LSN qui reçoit le LSN de l’enregistrement de redémarrage nouvellement écrit.

Valeur retournée

ClfsWriteRestartArea retourne STATUS_SUCCESS si elle réussit ; sinon, il retourne l’un des codes d’erreur définis dans Ntstatus.h.

Remarques

En règle générale, ClfsWriteRestartArea est appelé comme dernier acte d’un point de contrôle client.

ClfsWriteRestartArea est une opération relativement coûteuse, car elle provoque un vidage de tous les enregistrements actuellement dans la zone de marshaling, ainsi qu’un vidage des métadonnées de flux et de journal.

À tout moment, une seule zone de marshaling doit être utilisée pour écrire des données dans un flux. L’écriture de deux zones de marshaling dans le flux peut entraîner une altération du flux.

Si vous souhaitez simplement définir le LSN de base d’un flux, utilisez ClfsAdvanceLogBase, qui ne vide pas nécessairement les données dans un stockage stable.

Pour obtenir une explication des concepts et de la terminologie CLFS, consultez Common Log File System.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Server 2003 R2, Windows Vista et versions ultérieures de Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête wdm.h (inclure Wdm.h)
Bibliothèque Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

Voir aussi

CLFS_LSN

ClfsAdvanceLogBase

ClfsCreateMarshallingArea

ClfsReadPreviousRestartArea

ClfsReadRestartArea