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

Consulte também

CcCanIWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold