Função CcCanIWrite (ntifs.h)

A rotina CcCanIWrite determina se o chamador pode gravar em um arquivo armazenado em cache.

Sintaxe

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

Parâmetros

[in] FileObject

Ponteiro para um objeto de arquivo para o arquivo armazenado em cache.

[in] BytesToWrite

Número de bytes a serem gravados.

[in] Wait

Defina como TRUE se o chamador puder ser colocado em um estado de espera até que ele possa gravar no arquivo armazenado em cache, caso contrário, FALSE.

[in] Retrying

Defina como FALSE se esta for a primeira vez que CcCanIWrite estiver sendo chamado para essa solicitação de gravação, CASO contrário, TRUE.

Retornar valor

CcCanIWrite retornará TRUE se o gerenciador de cache puder aceitar a solicitação de gravação, caso contrário, FALSE.

Comentários

CcCanIWrite deve ser chamado antes de chamar CcCopyWrite ou CcFastCopyWrite.

Se CcCanIWrite retornar TRUE, o chamador poderá chamar imediatamente CcCopyWrite ou CcFastCopyWrite.

Se CcCanIWrite retornar FALSE, o chamador deverá chamar CcDeferWrite para adiar a solicitação de gravação.

Em geral, o gerenciador de cache poderá aceitar uma solicitação de gravação se as seguintes condições forem verdadeiras:

  • A quantidade de dados a serem gravados não é muito grande.

  • Há memória suficiente para executar a operação de gravação.

  • O número de páginas sujo no cache do sistema não excede o limite de página sujo (CcDirtyPageThreshold).

  • Se houver um limite de página sujo por arquivo para esse arquivo, ele não será excedido pelo número de páginas sujo para esse arquivo no cache do sistema.

Para armazenar em cache um arquivo, use CcInitializeCacheMap.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe

Confira também

CcCopyWrite

CcDeferWrite

CcFastCopyWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold