Funzione CcFastCopyWrite (ntifs.h)
La routine CcFastCopyWrite esegue una scrittura rapida di copia 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. È diverso da CcCopyWrite nei seguenti aspetti:
FileOffset è un 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 sono stati copiati tutti i dati.
CcFastCopyWrite non restituisce un valore BOOLEAN per indicare se l'operazione di scrittura è riuscita.
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 necessarie non sono state effettuate e i dati possono essere copiati.
Se si verifica un errore, CcFastCopyWrite genera un'eccezione di stato per tale errore specifico. 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.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |