Funzione CcCopyWrite (ntifs.h)
Il CcCopyWrite routine copia i dati da un buffer utente in un file memorizzato nella cache.
Sintassi
BOOLEAN CcCopyWrite(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[in] BOOLEAN Wait,
[in] PVOID Buffer
);
Parametri
[in] FileObject
Puntatore a un oggetto file per il file memorizzato nella cache in cui scrivere 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] Wait
Impostare su true se il chiamante può essere inserito in uno stato di attesa fino a quando non vengono copiati tutti i dati, FALSE in caso contrario.
[in] Buffer
Puntatore al buffer da cui copiare i dati.
Valore restituito
La routine CcCopyWrite
Osservazioni
Se Wait è TRUE, CcCopyWrite è garantito di completare la richiesta di copia e restituire TRUE. Se le pagine richieste del file memorizzato nella cache sono già residenti in memoria, i dati verranno copiati immediatamente e non si verificherà alcun blocco. Se le pagine necessarie non sono residenti, il chiamante verrà messo in uno stato di attesa fino a quando tutte le pagine richieste non sono state rese residenti e i dati possono essere copiati.
Se Wait è FALSE, CcCopyWrite rifiuterà di bloccare e restituirà FALSE, se le pagine richieste del file memorizzato nella cache non sono già residenti in memoria o se il flag FO_WRITE_THROUGH è impostato sull'oggetto file.
Se si verifica un errore, CcCopyWrite genera un'eccezione di stato per quel particolare errore. Ad esempio, se si verifica un errore di allocazione del pool, CcCopyWrite genera un'eccezione STATUS_INSUFFICIENT_RESOURCES; se si verifica un errore di I/O, CcCopyWrite 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 CcCopyWrite in un 'istruzione try-except o try-finally.
Per memorizzare nella cache un file, usare CcInitializeCacheMap.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 |
piattaforma di destinazione | Universale |
intestazione |
ntifs.h (include Ntifs.h, FltKernel.h) |
libreria |
NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |