Função CcZeroData (ntifs.h)
O CcZeroData a rotina zera o intervalo de bytes especificado em um arquivo armazenado em cache ou não armazenado em cache.
Nota
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 CcCopyWriteou 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 zero.
[in] StartOffset
Um ponteiro para uma variável que especifica o deslocamento de bytes dentro do arquivo para o primeiro byte que deve ser zero.
[in] EndOffset
Um ponteiro para uma variável que especifica o deslocamento de bytes dentro do arquivo para o último byte que deve ser zero.
[in] Wait
Defina como VERDADEIRO 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.
Valor de retorno
CcZeroData retornará verdadeiro se os dados forem zerados com êxito; caso contrário, retornará FALSE .
Observações
O arquivo a ser zero 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 de espera tiver sido especificado como TRUE, CcZeroData gerará uma exceção STATUS_INSUFFICIENT_RESOURCES. Se ocorrer uma falha de alocação de pool e de espera tiver sido especificada 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 gravação estivesse habilitado.
Se de Espera estiver definida como TRUE, ccZeroData será garantido para concluir a solicitação de dados zero e retornar VERDADEIRO. 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 de espera 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 do Windows, o comportamento do 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 |
---|---|
de cliente com suporte mínimo | Windows 2000. Consulte Comentários sobre alterações para o Vista e sistemas operacionais posteriores. |
da Plataforma de Destino |
Universal |
cabeçalho | ntifs.h (inclua Fltkernel.h, Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL |
NtosKrnl.exe |
IRQL | <=APC_LEVEL |