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 |