Condividi tramite


Funzione CcDeferWrite (ntifs.h)

Il CcDeferWrite rinvia la scrittura in un file memorizzato nella cache. La routine post fornita viene chiamata dal gestore cache quando può supportare l'operazione di scrittura.

Sintassi

void CcDeferWrite(
  [in] PFILE_OBJECT            FileObject,
  [in] PCC_POST_DEFERRED_WRITE PostRoutine,
  [in] PVOID                   Context1,
  [in] PVOID                   Context2,
  [in] ULONG                   BytesToWrite,
  [in] BOOLEAN                 Retrying
);

Parametri

[in] FileObject

Puntatore a un oggetto file per il file memorizzato nella cache in cui devono essere scritti i dati.

[in] PostRoutine

Indirizzo di una routine per la gestione cache da chiamare per scrivere nel file memorizzato nella cache. Si noti che è possibile chiamare immediatamente questa routine, anche se CcCanIWrite ha appena restituito FALSE .

La routine post è definita in ntifs.h come:

typedef
VOID (*PCC_POST_DEFERRED_WRITE) (
    _In_ PVOID Context1,
    _In_ PVOID Context2
    );

Questa funzione può essere chiamata con il campo TopLevelIrp nell'IRP corrente impostato su FSRTL_MOD_WRITE_TOP_LEVEL_IRP.

[in] Context1

Primo parametro per la routine post in PostRoutine.

[in] Context2

Secondo parametro per la routine post in PostRoutine.

[in] BytesToWrite

Numero di byte di dati da scrivere.

[in] Retrying

Impostare su false se la richiesta viene inviata per la prima volta, TRUE in caso contrario.

Valore restituito

Nessuno

Osservazioni

Un file system chiama normalmente CcDeferWrite dopo aver ricevuto un valore restituito di FALSE da CcCanIWrite.

Per memorizzare nella cache un file, usare CcInitializeCacheMap.

I parametri di contesto passati a PostRoutine sono in genere la richiesta di I/O e i dati di contesto correlati.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione ntifs.h (include Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe

Vedere anche

CcCanIWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold