Função CcCanIWrite (ntifs.h)
A rotina de cccaniwrite
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
ccDeferWrite