Partager via


Fonction ClfsMgmtHandleLogFileFull (wdm.h)

La routine ClfsMgmtHandleLogFileFull tente de rendre plus d’espace disponible dans un journal. Il peut rendre plus d’espace disponible en ajoutant des conteneurs au journal, ou demander aux clients de déplacer leurs queues de journal.

Syntaxe

CLFSUSER_API NTSTATUS ClfsMgmtHandleLogFileFull(
  [in] CLFS_MGMT_CLIENT Client
);

Paramètres

[in] Client

Client qui demande la gestion de CLFS pour rendre l’espace disponible dans le journal. La valeur de ce paramètre doit être la structure CLFS_MGMT_CLIENT obtenue via un appel à la routine ClfsMgmtRegisterManagedClient .

Valeur retournée

La routine ClfsMgmtHandleLogFileFull retourne l’une des valeurs NTSTATUS suivantes :

Code de retour Description
STATUS_INVALID_PARAMETER Le client ne gère pas de journal.
STATUS_INVALID_PARAMETER_1 La valeur fournie pour le paramètre Client était NULL ou ne représente pas un client valide.
STATUS_LOG_FULL_HANDLER_IN_PROGRESS La gestion CLFS tente déjà de résoudre une condition complète de fichier journal pour ce client.
STATUS_UNSUCCESSFUL La gestion de CLFS n’a pas été en mesure de traiter la demande.
STATUS_PENDING La gestion CLFS traite la demande de création d’espace dans le journal.
STATUS_SUCCESS La quantité d’espace demandée est disponible dans le journal.

Remarques

Pour rendre plus d’espace disponible dans le journal, la routine ClfsMgmtHandleLogFileFull tente d’abord d’ajouter d’autres conteneurs au journal en fonction du taux de croissance, de la nouvelle taille de conteneur et des stratégies de taille maximale. Si d’autres conteneurs ne peuvent pas être ajoutés, la routine ClfsMgmtHandleLogFileFull tente de libérer de l’espace existant en appelant les fonctions ClfsAdvanceTailCallback d’un ou plusieurs clients.

Si la routine ClfsMgmtHandleLogFileFull retourne STATUS_PENDING, la fonction ClfsLogGrowthCompleteCallback du client est appelée lorsque la demande d’espace dans le journal est terminée.

Si la routine ClfsMgmtHandleLogFileFull retourne STATUS_LOG_FULL_HANDLER_IN_PROGRESS, le client a déjà demandé à la gestion CLFS de gérer une condition complète de fichier journal. La fonction ClfsLogGrowthCompleteCallback du client n’est pas appelée une deuxième fois.

Si la routine ClfsMgmtHandleLogFileFull retourne STATUS_SUCCESS, l’appel s’est terminé de manière synchrone et la fonction ClfsLogGrowthCompleteCallback du client n’est pas appelée.

Si la routine ClfsMgmtHandleLogFileFull retourne STATUS_PENDING, la gestion CLFS tente de libérer de l’espace dans le journal et appelle la fonction ClfsLogGrowthCompleteCallback du client lorsque la condition complète du fichier journal a été gérée. Si le journal est épinglé, la gestion CLFS appelle la fonction ClfsLogGrowthCompleteCallback du client avec le paramètre LogIsPinned défini sur TRUE avant que la routine ClfsMgmtHandleLogFileFull ne retourne STATUS_PENDING.

Il est possible que la fonction ClfsLogGrowthCompleteCallback du client soit appelée avant que l’appel à ClfsMgmtHandleLogFileFull ne retourne.

Si la routine ClfsMgmtHandleLogFileFull retourne STATUS_PENDING, vous ne devez pas appeler la routine ClfsMgmtHandleLogFileFull pour ce client tant que la fonction ClfsLogGrowthCompleteCallback du client n’a pas été appelée.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque Clfs.lib
DLL Clfs.sys
IRQL IRQL <= APC_LEVEL

Voir aussi

ClfsAdvanceTailCallback

ClfsLogGrowthCompleteCallback

ClfsMgmtRegisterManagedClient