Condividi tramite


Funzione ClfsMgmtSetLogFileSize (wdm.h)

La routine ClfsMgmtSetLogFileSize aggiunge contenitori a un log o elimina i contenitori da un log.

Sintassi

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
);

Parametri

[in] LogFile

Puntatore a una struttura LOG_FILE_OBJECT che rappresenta il log CLFS o un flusso all'interno del log, a cui vengono aggiunti o eliminati i contenitori.

[in] NewSizeInContainers

Puntatore alla dimensione del log richiesta. Il chiamante imposta questo parametro su uno dei valori seguenti.

Valore Significato
0 Applicare i criteri di dimensione minima. Per altre informazioni su questo criterio, vedere ClfsMgmtInstallPolicy.

Se non è installato un criterio di dimensione minima, si verifica uno dei seguenti:

  • Se il log include attualmente meno di 2 contenitori, il log verrà espanso a una dimensione di 2 contenitori.
  • Se il log include attualmente 2 o più contenitori, non vengono apportate modifiche e la chiamata ha esito positivo.
Se è installato un criterio di dimensioni minime, si verifica una delle operazioni seguenti:
  • Se il log ha attualmente meno del numero minimo di contenitori specificato dai criteri di dimensione minima, il log si espande fino al numero minimo di contenitori specificato dai criteri.
  • Se il numero di contenitori nel log è maggiore o uguale al numero minimo di contenitori specificato dai criteri di dimensione minima, non vengono apportate modifiche e la chiamata ha esito positivo senza errori.
1 Valore non valido. La chiamata ha esito negativo e restituisce STATUS_INVALID_VALUE.
Da 2 a 1023 Dimensioni desiderate del log, espresse come numero di contenitori.

Se questo numero è inferiore al numero minimo di contenitori specificato dal criterio installato, la chiamata ha esito negativo con ERROR_COULD_NOT_RESIZE_LOG.

Se questo numero è maggiore del numero massimo di contenitori specificato dal criterio installato, il log si espande solo per il numero massimo di contenitori specificato dai criteri e la chiamata ha esito positivo senza errori.

Da 1024 a MAXULONGLONG Se non sono installati criteri di dimensione massima, la chiamata ha esito negativo e restituisce ERROR_LOG_POLICY_CONFLICT.

Se viene installato un criterio di dimensione massima, il log si espande fino al numero massimo di contenitori specificato dai criteri di dimensione massima e la chiamata ha esito positivo senza errori.

 

Per determinare le dimensioni effettive del log, che potrebbero essere diverse dalle dimensioni richieste, usare il parametro ResultingSizeInContainers.

[out] ResultingSizeInContainers

Puntatore alla dimensione del log risultante. In caso di esito positivo, la routine scrive le dimensioni effettive del log, espresse come numero di contenitori nel log, nel percorso a cui punta questo parametro.

[in, optional] CompletionRoutine

Non utilizzato. Impostare su NULL.

[in, optional] CompletionRoutineData

Non utilizzato. Impostare su NULL.

Valore restituito

La routine clfsMgmtSetLogFileSize restituisce uno dei valori NTSTATUS seguenti:

Codice restituito Descrizione
STATUS_SUCCESS
Le dimensioni del file di log sono state impostate. Il parametro ResultingSizeInContainers contiene le dimensioni correnti del log.
STATUS_UNSUCCESSFUL
La gestione CLFS non è stata in grado di impostare le dimensioni del file di log.
STATUS_INVALID_PARAMETER_1
Il valore del parametro LogFile è NULLo il contenuto del parametro NewSizeInContainers è 1.
STATUS_INVALID_PARAMETER_2
Il valore del parametro NewSizeInContainers è NULL.
STATUS_LOG_POLICY_INVALID
Esiste un conflitto tra le dimensioni massime e i criteri di dimensione minima per il log.
STATUS_COULD_NOT_RESIZE_LOG
La gestione CLFS non è stata in grado di eliminare contenitori sufficienti per raggiungere NewSizeInContainers.
STATUS_LOG_POLICY_CONFLICT
La gestione CLFS non è riuscita ad aggiungere contenitori sufficienti al log per raggiungere NewSizeInContainers. Ciò potrebbe essere dovuto a un conflitto con un criterio impostato dal client.
 

Questa routine potrebbe restituire anche altri valori NTSTATUS .

Osservazioni

La routine ClfsMgmtSetLogFileSize viene in genere utilizzata solo all'avvio o all'arresto di un client. Non chiamare la routine clfsMgmtSetLogFileSizeclfsAdvanceTailCallback.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile a partire da Windows Server 2003 R2 e Windows Vista.
piattaforma di destinazione Desktop
intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
libreria Clfs.lib
dll Clfs.sys
IRQL <= APC_LEVEL

Vedere anche

CLFS_MGMT_POLICY_TYPE

ClfsMgmtInstallPolicy