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 |