Partager via


Fonction ClfsMgmtSetLogFileSize (wdm.h)

La routine ClfsMgmtSetLogFileSize ajoute des conteneurs à un journal ou supprime des conteneurs d’un journal.

Syntaxe

CLFSUSER_API NTSTATUS ClfsMgmtSetLogFileSize(
  [in]           PLOG_FILE_OBJECT                     LogFile,
  [in]           PULONGLONG                           NewSizeInContainers,
  [out]          PULONGLONG                           ResultingSizeInContainers,
  [in, optional] PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK CompletionRoutine,
  [in, optional] PVOID                                CompletionRoutineData
);

Paramètres

[in] LogFile

Pointeur vers une structure LOG_FILE_OBJECT qui représente le journal CLFS ou un flux dans le journal auquel les conteneurs sont ajoutés ou supprimés.

[in] NewSizeInContainers

Pointeur vers la taille de journal demandée. L’appelant définit ce paramètre sur l’une des valeurs suivantes.

Valeur Signification
0 Appliquez la stratégie de taille minimale. Pour plus d’informations sur cette stratégie, consultez ClfsMgmtInstallPolicy.

Si aucune stratégie de taille minimale n’est installée, l’une des opérations suivantes se produit :

  • Si le journal comporte actuellement moins de 2 conteneurs, le journal est développé à une taille de 2 conteneurs.
  • Si le journal comporte actuellement 2 conteneurs ou plus, aucune modification n’est apportée et l’appel réussit.
Si une stratégie de taille minimale est installée, l’une des opérations suivantes se produit :
  • Si le journal a actuellement un nombre inférieur au nombre minimal de conteneurs spécifié par la stratégie de taille minimale, le journal s’étend au nombre minimal de conteneurs spécifié par la stratégie.
  • Si le nombre de conteneurs dans le journal est supérieur ou égal au nombre minimal de conteneurs spécifié par la stratégie de taille minimale, aucune modification n’est apportée et l’appel réussit sans erreur.
1 Valeur non valide. L’appel échoue et retourne STATUS_INVALID_VALUE.
2 à 1023 Taille souhaitée du journal, exprimée en tant que nombre de conteneurs.

Si ce nombre est inférieur au nombre minimal de conteneurs spécifié par la stratégie installée, l’appel échoue avec ERROR_COULD_NOT_RESIZE_LOG.

Si ce nombre est supérieur au nombre maximal de conteneurs spécifié par la stratégie installée, le journal se développe uniquement en ce qui concerne le nombre maximal de conteneurs spécifié par la stratégie, et l’appel réussit sans erreur.

1024 à MAXULONGLONG Si aucune stratégie de taille maximale n’est installée, l’appel échoue et retourne ERROR_LOG_POLICY_CONFLICT.

Si une stratégie de taille maximale est installée, le journal s’étend au nombre maximal de conteneurs spécifié par la stratégie de taille maximale et l’appel réussit sans erreur.

 

Pour déterminer la taille réelle du journal, qui peut être différente de la taille demandée, utilisez le paramètre ResultingSizeInContainers .

[out] ResultingSizeInContainers

Pointeur vers la taille de journal obtenue. Si elle réussit, la routine écrit la taille réelle du journal, exprimée en tant que nombre de conteneurs dans le journal, dans l’emplacement indiqué par ce paramètre.

[in, optional] CompletionRoutine

Non utilisé. valeur de l’en-tête définie sur Null.

[in, optional] CompletionRoutineData

Non utilisé. valeur de l’en-tête définie sur Null.

Valeur retournée

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

Code de retour Description
STATUS_SUCCESS
La taille du fichier journal a été définie. Le paramètre ResultingSizeInContainers contient la taille actuelle du journal.
STATUS_UNSUCCESSFUL
La gestion CLFS n’a pas pu définir la taille du fichier journal.
STATUS_INVALID_PARAMETER_1
La valeur du paramètre LogFile est NULL ou le contenu du paramètre NewSizeInContainers est 1.
STATUS_INVALID_PARAMETER_2
La valeur du paramètre NewSizeInContainers est NULL.
STATUS_LOG_POLICY_INVALID
Il existe un conflit entre les stratégies de taille maximale et de taille minimale pour le journal.
STATUS_COULD_NOT_RESIZE_LOG
La gestion CLFS n’a pas pu supprimer suffisamment de conteneurs pour atteindre NewSizeInContainers.
STATUS_LOG_POLICY_CONFLICT
La gestion CLFS n’a pas pu ajouter suffisamment de conteneurs au journal pour atteindre NewSizeInContainers. Cela peut être dû à un conflit avec une stratégie définie par le client.
 

Cette routine peut également retourner d’autres valeurs NTSTATUS.

Remarques

La routine ClfsMgmtSetLogFileSize est généralement utilisée uniquement lorsqu’un client démarre ou s’arrête. N’appelez pas la routine ClfsMgmtSetLogFileSize à partir de votre fonction ClfsAdvanceTailCallback .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows Server 2003 R2 et Windows Vista.
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 <= APC_LEVEL

Voir aussi

CLFS_MGMT_POLICY_TYPE

ClfsMgmtInstallPolicy