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 ha attualmente meno di 2 contenitori, il log verrà espanso fino a una dimensione di 2 contenitori.
  • Se il log dispone attualmente di 2 o più contenitori, non vengono apportate modifiche e la chiamata ha esito positivo.
Se è installato un criterio di dimensione minima, si verifica uno dei seguenti:
  • Se il log ha attualmente un numero inferiore al 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 Dimensione desiderata del log, espressa come numero di contenitori.

Se questo numero è inferiore al numero minimo di contenitori specificato dai criteri installati, la chiamata ha esito negativo con ERROR_COULD_NOT_RESIZE_LOG.

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

Da 1024 a MAXULONGLONG Se non è installato alcun criterio 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, nella posizione a cui punta questo parametro.

[in, optional] CompletionRoutine

Non usato. Impostata su NULL.

[in, optional] CompletionRoutineData

Non usato. Impostata 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 è NULL oppure 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 è stata in grado di aggiungere contenitori sufficienti al log per raggiungere NewSizeInContainers. Ciò potrebbe essere dovuto a un conflitto con un criterio impostato dal client.
 

Questa routine può restituire anche altri valori NTSTATUS.

Commenti

La routine ClfsMgmtSetLogFileSize viene in genere utilizzata solo all'avvio o all'arresto di un client. Non chiamare la routine ClfsMgmtSetLogFileSize dall'interno della funzione ClfsAdvanceTailCallback .

Requisiti

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

Vedi anche

CLFS_MGMT_POLICY_TYPE

ClfsMgmtInstallPolicy