Condividi tramite


Funzione ClfsMgmtHandleLogFileFull (wdm.h)

La routine ClfsMgmtHandleLogFileFull tenta di rendere più spazio disponibile in un log. Potrebbe rendere più spazio disponibile aggiungendo contenitori al log oppure potrebbe chiedere ai client di spostare le code del log.

Sintassi

CLFSUSER_API NTSTATUS ClfsMgmtHandleLogFileFull(
  [in] CLFS_MGMT_CLIENT Client
);

Parametri

[in] Client

Client che richiede la gestione CLFS per rendere disponibile lo spazio nel log. Il valore di questo parametro deve essere la struttura CLFS_MGMT_CLIENT ottenuta tramite una chiamata alla routine ClfsMgmtRegisterManagedClient .

Valore restituito

La routine ClfsMgmtHandleLogFileFull restituisce uno dei valori NTSTATUS seguenti:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER Il client non gestisce un log.
STATUS_INVALID_PARAMETER_1 Il valore fornito per il parametro Client era NULL o non rappresenta un client valido.
STATUS_LOG_FULL_HANDLER_IN_PROGRESS La gestione CLFS sta già tentando di risolvere una condizione completa del file di log per questo client.
STATUS_UNSUCCESSFUL La gestione CLFS non è stata in grado di elaborare la richiesta.
STATUS_PENDING La gestione CLFS elabora la richiesta di creare spazio nel log.
STATUS_SUCCESS La quantità di spazio richiesta è disponibile nel log.

Commenti

Per rendere più spazio disponibile nel log, la routine ClfsMgmtHandleLogFileFull tenta prima di tutto di aggiungere altri contenitori al log in base alla frequenza di crescita, alle nuove dimensioni del contenitore e ai criteri di dimensioni massime. Se non è possibile aggiungere più contenitori, la routine ClfsMgmtHandleLogFileFull tenta di liberare spazio esistente richiamando una o più funzioni ClfsAdvanceTailCallback di uno o più client.

Se la routine ClfsMgmtHandleLogFileFull restituisce STATUS_PENDING, la funzione ClfsLogGrowthCompleteCallback del client verrà chiamata quando la richiesta di rendere spazio nel log è stata completata.

Se la routine ClfsMgmtHandleLogFileFull restituisce STATUS_LOG_FULL_HANDLER_IN_PROGRESS, il client ha già richiesto la gestione CLFS per gestire una condizione completa del file di log. La funzione ClfsLogGrowthCompleteCallback del client non verrà chiamata una seconda volta.

Se la routine ClfsMgmtHandleLogFileFull restituisce STATUS_SUCCESS, la chiamata è stata completata in modo sincrono e la funzione ClfsLogGrowthCompleteCallback del client non verrà richiamata.

Se la routine ClfsMgmtHandleLogFileFull restituisce STATUS_PENDING, la gestione CLFS si trova nel processo di tentativo di liberare spazio nel log e chiamerà la funzione ClfsLogGrowthCompleteCallback del client quando è stata gestita la condizione completa del file di log. Se il log viene aggiunto, la gestione CLFS chiamerà la funzione ClfsLogGrowthCompleteCallback con il parametro LogIsPinned impostato su TRUE prima che la routine ClfsMgmtHandleLogFileFull restituisce STATUS_PENDING.

È possibile che la funzione ClfsLogGrowthCompleteCallback del client possa essere chiamata prima della chiamata a ClfsMgmtHandleLogFileFull .

Se la routine ClfsMgmtHandleLogFileFull restituisce STATUS_PENDING, non è consigliabile chiamare nuovamente la routine ClfsMgmtHandleLogFileFull per questo client finché non è stata chiamata la funzione ClfsLogGrowthCompleteCallback del client.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria Clfs.lib
DLL Clfs.sys
IRQL IRQL <= APC_LEVEL

Vedi anche

ClfsAdvanceTailCallback

ClfsLogGrowthCompleteCallback

ClfsMgmtRegisterManagedClient