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 |