Função CcZeroData (ntifs.h)
A rotina CcZeroData zeros o intervalo especificado de bytes em um arquivo armazenado em cache ou não armazenado em cache.
Observação
Essa rotina só deve ser chamada para zero partes de um arquivo além do comprimento de dados válido do arquivo. CcZeroData não modificará nenhum dado gravado anteriormente do arquivo. Para zero dados gravados anteriormente que sejam parte do arquivo até o comprimento de dados válido do arquivo, chame CcCopyWrite ou uma das outras interfaces de gravação armazenadas em cache.
Sintaxe
BOOLEAN CcZeroData(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER StartOffset,
[in] PLARGE_INTEGER EndOffset,
[in] BOOLEAN Wait
);
Parâmetros
[in] FileObject
Um ponteiro para um FILE_OBJECT para o arquivo no qual um intervalo de bytes deve ser zerado.
[in] StartOffset
Um ponteiro para uma variável que especifica o deslocamento de bytes dentro do arquivo para o primeiro byte que deve ser zerado.
[in] EndOffset
Um ponteiro para uma variável que especifica o deslocamento de bytes dentro do arquivo para o último byte que deve ser zerado.
[in] Wait
Defina como TRUE se o chamador deve ser colocado em um estado de espera até que todo o intervalo de bytes tenha sido zerado. Caso contrário, esse parâmetro será definido como FALSE.
Retornar valor
CcZeroData retornará TRUE se os dados forem zerados com êxito; caso contrário, retornará FALSE.
Comentários
O arquivo a ser zerado pode ser armazenado em cache ou não armazenado em cache. No entanto, se o arquivo não for armazenado em cache, os valores de StartOffset e EndOffset deverão ser múltiplos do tamanho do setor do volume.
Se ocorrer uma falha de alocação de pool e Wait tiver sido especificado como TRUE, CcZeroData gerará uma exceção STATUS_INSUFFICIENT_RESOURCES. Se ocorrer uma falha de alocação de pool e Wait tiver sido especificado como FALSE, CcZeroData retornará FALSE, mas não gerará uma exceção.
Se o FileObject fornecido não tiver o cache habilitado, mas o cache existir no fluxo (ou seja, outro objeto de arquivo para o mesmo arquivo tiver o cache habilitado), o zero será tratado como se o cache de write-through estivesse habilitado.
Se Wait estiver definido como TRUE, ccZeroData será garantido para concluir a solicitação de dados zero e retornar TRUE. Se as páginas necessárias do arquivo armazenado em cache já estiverem residentes na memória, os dados serão zerados 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 zerados.
Se Wait for FALSE e se as páginas necessárias do arquivo armazenado em cache ainda não estiverem residentes na memória, CcZeroData se recusará a bloquear e retornará FALSE.
Se ocorrer uma falha de alocação de pool, CcZeroData gerará uma exceção STATUS_INSUFFICIENT_RESOURCES. Se CcZeroData encontrar outros erros, incluindo erros de E/S, os erros serão gerados para o chamador.
Para sistemas operacionais Windows Vista e posteriores, o comportamento de CcZeroData é o seguinte:
- Se o fluxo for armazenado em cache e write_through, StartOffset não precisará estar alinhado ao setor.
- Se EndOffset não estiver alinhado, ele será arredondado para o próximo tamanho do setor.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000. Consulte Comentários para obter alterações para o Vista e sistemas operacionais posteriores. |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Fltkernel.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |