Função CcDeferWrite (ntifs.h)
O CcDeferWrite a rotina adia a gravação em um arquivo armazenado em cache. A rotina de postagem fornecida é chamada pelo gerenciador de cache quando pode acomodar a operação de gravação.
Sintaxe
void CcDeferWrite(
[in] PFILE_OBJECT FileObject,
[in] PCC_POST_DEFERRED_WRITE PostRoutine,
[in] PVOID Context1,
[in] PVOID Context2,
[in] ULONG BytesToWrite,
[in] BOOLEAN Retrying
);
Parâmetros
[in] FileObject
Ponteiro para um objeto de arquivo para o arquivo armazenado em cache no qual os dados devem ser gravados.
[in] PostRoutine
Endereço de uma rotina para o gerenciador de cache chamar para gravar no arquivo armazenado em cache. Observe que é possível que essa rotina seja chamada imediatamente, mesmo que CcCanIWrite tenha retornado FALSE.
A rotina de postagem é definida em ntifs.h como:
typedef
VOID (*PCC_POST_DEFERRED_WRITE) (
_In_ PVOID Context1,
_In_ PVOID Context2
);
Essa função pode ser chamada com o campo TopLevelIrp no IRP atual definido como FSRTL_MOD_WRITE_TOP_LEVEL_IRP.
[in] Context1
Primeiro parâmetro para a rotina de pós-rotina em postRoutine.
[in] Context2
Segundo parâmetro para a rotina pós-rotina em PostRoutine .
[in] BytesToWrite
Número de bytes de dados a serem gravados.
[in] Retrying
Defina como FALSE se a solicitação estiver sendo postada pela primeira vez, VERDADEIRO caso contrário.
Valor de retorno
Nenhum
Observações
Normalmente, um sistema de arquivos chama CcDeferWrite depois de receber um valor retornado de FALSE de CcCanIWrite.
Para armazenar em cache um arquivo, use CcInitializeCacheMap.
Os parâmetros de contexto passados para do PostRoutine normalmente são a solicitação de E/S e os dados de contexto relacionados.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino |
Universal |
cabeçalho | ntifs.h (inclua Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL |
NtosKrnl.exe |