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

Vedi anche

CcCopyWrite

CcInitializeCacheMap