Função CcFastCopyRead (ntifs.h)
A rotina CcFastCopyRead executa uma leitura rápida de cópia de um arquivo armazenado em cache para um buffer na memória.
Sintaxe
void CcFastCopyRead(
[in] PFILE_OBJECT FileObject,
[in] ULONG FileOffset,
[in] ULONG Length,
[in] ULONG PageCount,
[out] PVOID Buffer,
[out] PIO_STATUS_BLOCK IoStatus
);
Parâmetros
[in] FileObject
Ponteiro para um objeto de arquivo para o arquivo armazenado em cache do qual os dados devem ser lidos.
[in] FileOffset
Iniciando o deslocamento de bytes dentro do arquivo armazenado em cache.
[in] Length
Comprimento em bytes dos dados a serem lidos.
[in] PageCount
Número de páginas estendidas pela leitura.
[out] Buffer
Ponteiro para um buffer no qual os dados devem ser copiados.
[out] IoStatus
Ponteiro para uma estrutura que recebe o status de conclusão final e informações sobre a operação. Se nem todos os dados forem copiados com êxito, IoStatus.Information conterá o número real de bytes que foram copiados.
Retornar valor
Nenhum
Comentários
CcFastCopyRead é uma versão mais rápida do CcCopyRead. Ele difere de CcCopyRead 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.
CcFastCopyRead não retorna um BOOLEAN para indicar se a operação de leitura foi bem-sucedida.
FileOffset mais Length deve ser menor ou igual ao tamanho do arquivo armazenado em cache ou ocorrerá uma falha de asserção.
Se ocorrer alguma falha, CcFastCopyRead gerará uma exceção status para essa falha específica. Por exemplo, se ocorrer uma falha de alocação de pool, CcFastCopyRead gerará uma exceção STATUS_INSUFFICIENT_RESOURCES; se ocorrer um erro de E/S, CcFastCopyRead 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 CcFastCopyRead 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 |
IRQL | < DISPATCH_LEVEL |