Funzione CcCanIWrite (ntifs.h)

La routine CcCanIWrite determina se il chiamante può scrivere in un file memorizzato nella cache.

Sintassi

BOOLEAN CcCanIWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        BytesToWrite,
  [in] BOOLEAN      Wait,
  [in] UCHAR        Retrying
);

Parametri

[in] FileObject

Puntatore a un oggetto file per il file memorizzato nella cache.

[in] BytesToWrite

Numero di byte da scrivere.

[in] Wait

Impostare su TRUE se il chiamante può essere inserito in uno stato di attesa fino a quando non può scrivere nel file memorizzato nella cache, FALSE in caso contrario.

[in] Retrying

Impostare su FALSE se si tratta della prima chiamata a CcCanIWrite per questa richiesta di scrittura, TRUE in caso contrario.

Valore restituito

CcCanIWrite restituisce TRUE se la gestione cache può accettare la richiesta di scrittura, FALSE in caso contrario.

Commenti

CcCanIWrite deve essere chiamato prima di chiamare CcCopyWrite o CcFastCopyWrite.

Se CcCanIWrite restituisce TRUE, il chiamante può chiamare immediatamente CcCopyWrite o CcFastCopyWrite.

Se CcCanIWrite restituisce FALSE, il chiamante deve invece chiamare CcDeferWrite per rinviare la richiesta di scrittura.

In genere, la gestione cache può accettare una richiesta di scrittura se le condizioni seguenti sono vere:

  • La quantità di dati da scrivere non è troppo grande.

  • Memoria sufficiente per eseguire l'operazione di scrittura.

  • Il numero di pagine sporche nella cache di sistema non supera la soglia di pagina sporca (CcDirtyPageThreshold).

  • Se per ogni file esiste una soglia di pagina sporca per questo file, non viene superata dal numero di pagine sporche per questo file nella cache di sistema.

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

CcDeferWrite

CcFastCopyWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold