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 |