Funzione CcFastCopyWrite (ntifs.h)
La routine CcFastCopyWrite esegue una scrittura di copia veloce da un buffer in memoria a un file memorizzato nella cache.
Sintassi
void CcFastCopyWrite(
[in] PFILE_OBJECT FileObject,
[in] ULONG FileOffset,
[in] ULONG Length,
[in] PVOID Buffer
);
Parametri
[in] FileObject
Puntatore a un oggetto file per il file memorizzato nella cache in cui devono essere scritti i dati.
[in] FileOffset
Puntatore a una variabile che specifica l'offset di byte iniziale all'interno del file memorizzato nella cache.
[in] Length
Lunghezza in byte dei dati da scrivere.
[in] Buffer
Puntatore al buffer da cui copiare i dati.
Valore restituito
Nessuno
Osservazioni
CcFastCopyWrite è una versione più veloce di CcCopyWrite. Differisce da CcCopyWrite nei seguenti aspetti:
FileOffset è una ULONG, non un PLARGE_INTEGER.
Non esiste alcun parametro Wait. Il chiamante deve essere in grado di immettere uno stato di attesa fino a quando non vengono copiati tutti i dati.
CcFastCopyWrite non restituisce un valore BOOLEAN per indicare se l'operazione di scrittura ha avuto esito positivo.
Se le pagine necessarie del file memorizzato nella cache sono già residenti in memoria, i dati vengono copiati immediatamente e non si verifica alcun blocco. Se le pagine necessarie non sono residenti, il chiamante viene inserito in uno stato di attesa fino a quando tutte le pagine richieste non sono state rese residenti e i dati possono essere copiati.
Se si verifica un errore, CcFastCopyWrite genera un'eccezione di stato per quel particolare errore. Ad esempio, se si verifica un errore di allocazione del pool, CcFastCopyWrite genera un'eccezione STATUS_INSUFFICIENT_RESOURCES; se si verifica un errore di I/O, CcFastCopyWrite genera l'eccezione di stato dell'errore di I/O. Pertanto, per ottenere il controllo se si verifica un errore, il driver deve eseguire il wrapping della chiamata a CcFastCopyWrite in un 'istruzione try-except o try-finally.
Per memorizzare nella cache un file, usare CcInitializeCacheMap.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione |
ntifs.h (include Ntifs.h) |
libreria |
NtosKrnl.lib |
dll | NtosKrnl.exe |