Função CcCopyWrite (ntifs.h)
A rotina CcCopyWrite copia dados de um buffer de usuário para um arquivo armazenado em cache.
Sintaxe
BOOLEAN CcCopyWrite(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[in] BOOLEAN Wait,
[in] PVOID Buffer
);
Parâmetros
[in] FileObject
Um ponteiro para um objeto de arquivo para o arquivo armazenado em cache no qual os dados devem ser gravados.
[in] FileOffset
Um ponteiro para uma variável que especifica o deslocamento de bytes inicial dentro do arquivo armazenado em cache.
[in] Length
O comprimento em bytes dos dados a serem gravados.
[in] Wait
Defina como TRUE se o chamador puder ser colocado em um estado de espera até que todos os dados sejam copiados; caso contrário, FALSE .
[in] Buffer
Um ponteiro para o buffer do qual os dados devem ser copiados.
Retornar valor
A rotina CcCopyWrite retornará TRUE se os dados tiverem sido copiados com êxito; caso contrário, FALSE .
Comentários
Se Wait for TRUE, ccCopyWrite tem a garantia de concluir a solicitação de cópia e retornar TRUE. 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 um estado de espera até que todas as páginas necessárias sejam residentes e os dados possam ser copiados.
Se Wait for FALSE, CcCopyWrite se recusará a bloquear e retornará FALSE se as páginas necessárias do arquivo armazenado em cache ainda não estiverem residentes na memória ou se o sinalizador FO_WRITE_THROUGH estiver definido no objeto de arquivo.
Se ocorrer alguma falha, CcCopyWrite gerará uma exceção status para essa falha específica. Por exemplo, se ocorrer uma falha de alocação de pool, CcCopyWrite gerará uma exceção STATUS_INSUFFICIENT_RESOURCES; se ocorrer um erro de E/S, CcCopyWrite gerará a exceção status do erro de E/S. Portanto, para obter controle se ocorrer uma falha, o driver deve encapsular a chamada para CcCopyWrite em uma instrução try-except ou try-finally .
Para armazenar em cache um arquivo, use CcInitializeCacheMap.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (include Ntifs.h, FltKernel.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |