Função CcFastCopyWrite (ntifs.h)

A rotina CcFastCopyWrite executa uma gravação de cópia rápida de um buffer na memória para um arquivo armazenado em cache.

Sintaxe

void CcFastCopyWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        FileOffset,
  [in] ULONG        Length,
  [in] PVOID        Buffer
);

Parâmetros

[in] FileObject

Ponteiro para um objeto de arquivo para o arquivo armazenado em cache no qual os dados devem ser gravados.

[in] FileOffset

Ponteiro para uma variável que especifica o deslocamento de bytes inicial dentro do arquivo armazenado em cache.

[in] Length

Comprimento em bytes dos dados a serem gravados.

[in] Buffer

Ponteiro para o buffer do qual os dados devem ser copiados.

Retornar valor

Nenhum

Comentários

CcFastCopyWrite é uma versão mais rápida do CcCopyWrite. Ela difere de CcCopyWrite nos seguintes aspectos:

  • FileOffset é um ULONG, não um PLARGE_INTEGER.

  • Não há nenhum parâmetro Wait . O chamador deve ser capaz de inserir um estado de espera até que todos os dados sejam copiados.

  • CcFastCopyWrite não retorna um BOOLEAN para indicar se a operação de gravação foi bem-sucedida.

Se as páginas necessárias do arquivo armazenado em cache já estiverem residentes na memória, os dados serão copiados imediatamente e nenhum bloqueio ocorrerá. Se as páginas necessárias não forem residentes, o chamador será colocado em estado de espera até que todas as páginas necessárias sejam residentes e os dados possam ser copiados.

Se ocorrer alguma falha, CcFastCopyWrite gerará uma exceção status para essa falha específica. Por exemplo, se ocorrer uma falha de alocação de pool, CcFastCopyWrite gerará uma exceção STATUS_INSUFFICIENT_RESOURCES; se ocorrer um erro de E/S, CcFastCopyWrite gerará a exceção status do erro de E/S. Portanto, para obter controle se ocorrer uma falha, o driver deverá encapsular a chamada para CcFastCopyWrite em uma instrução try-except ou try-finally .

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

Confira também

CcCopyWrite

CcInitializeCacheMap