Partilhar via


Função CcCanIWrite (ntifs.h)

A rotina de 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, FALSE caso contrário.

[in] Retrying

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

Valor de retorno

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

Observações

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.

De modo 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 sujas no cache do sistema não excede o limite de página suja (CcDirtyPageThreshold).

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

Para armazenar em cache um arquivo, use CcInitializeCacheMap.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho ntifs.h (inclua Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe

Consulte também

CcCopyWrite

ccDeferWrite

CcFastCopyWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold