Compartilhar via


FSCTL_DELETE_USN_JOURNAL IOCTL (winioctl.h)

Exclui o diário de alteração usn (número de sequência de atualização) em um volume ou aguarda a notificação de exclusão de diário de alteração.

C++
BOOL 
WINAPI 
DeviceIoControl( (HANDLE) hDevice,              // handle to volume
                 FSCTL_DELETE_USN_JOURNAL,      // dwIoControlCode(LPVOID) lpInBuffer,           // input buffer
                 (DWORD) nInBufferSize,         // size of input buffer
                 NULL,                          // lpOutBuffer0,                             // nOutBufferSize(LPDWORD) lpBytesReturned,     // number of bytes returned
                 (LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure

Observações

Para obter as implicações da E/S sobreposta nesta operação, consulte a seção Comentários do tópico DeviceIoControl.

Você pode usar FSCTL_DELETE_USN_JOURNAL para excluir um diário de alterações. O sistema de arquivos NTFS inicia uma operação de exclusão e retorna imediatamente ao processo de chamada, a menos que o sinalizador de USN_DELETE_FLAG_NOTIFY seja definido no DeleteFlags membro do DELETE_USN_JOURNAL_DATA.

Se os sinalizadores USN_DELETE_FLAG_NOTIFY e USN_DELETE_FLAG_DELETE estiverem definidos, uma chamada para FSCTL_DELETE_USN_JOURNAL iniciará o processo de exclusão. Em seguida, a chamada bloqueia o thread de chamada e aguarda a exclusão (em uma chamada síncrona ou não sobreposta) ou configura a notificação de evento usando uma porta de conclusão de E/S ou outro mecanismo e retorna (em uma chamada assíncrona ou sobreposta).

Você também pode usar FSCTL_DELETE_USN_JOURNAL para receber a notificação de que uma exclusão de diário de alteração está concluída, definindo apenas USN_DELETE_FLAG_NOTIFY. Se você fizer isso, a operação FSCTL_DELETE_USN_JOURNAL aguardará até que a exclusão seja concluída antes de retornar (em uma chamada síncrona ou não sobreposta) ou configurará a notificação de evento usando uma porta de conclusão de E/S ou outro mecanismo (em uma chamada assíncrona ou sobreposta).

A exclusão na qual um aplicativo recebe notificação pode ter sido iniciada pelo processo atual ou em algum outro processo. Por exemplo, quando um aplicativo é iniciado, ele pode usar FSCTL_DELETE_USN_JOURNAL para determinar se uma exclusão iniciada por algum outro processo está em andamento e, se estiver, saia.

A exclusão completa de um diário de alterações requer uma verificação do volume em que reside o diário de alterações, o que pode levar muito tempo em um volume com muitos arquivos. A operação continua a ser concluída mesmo em reinicializações do sistema. As tentativas de criar, modificar, excluir ou consultar o diário de alterações enquanto a exclusão estiver em andamento falham e retornam o código de erro ERROR_JOURNAL_DELETE_IN_PROGRESS.

A operação FSCTL_DELETE_USN_JOURNAL tem um custo de desempenho significativo, portanto, deve ser usada com moderação. Um administrador deve excluir um diário quando o valor usn atual se aproxima do valor máximo possível de USN.

Para obter mais informações, consulte Criando, modificando e excluindo um diário de alterações.

Para recuperar um identificador para um volume, chame CreateFile com o parâmetro lpFileName definido como uma cadeia de caracteres no seguinte formulário:

\\.\X:

Na cadeia de caracteres anterior, X é a letra que identifica a unidade na qual o volume aparece. O volume deve ser NTFS.

No Windows 8 e no Windows Server 2012, esse código é compatível com as tecnologias a seguir.

Tecnologia Suportado
Protocolo SMB (Bloco de Mensagens do Servidor) 3.0 Não
TFO (Failover Transparente) do SMB 3.0 Não
SMB 3.0 com Compartilhamentos de Arquivos de Expansão (SO) Não
Sistema de Arquivos de Volume Compartilhado de Cluster (CsvFS) Sim

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
cabeçalho winioctl.h (inclua Windows.h)

Consulte também

CREATE_USN_JOURNAL_DATA

alterar diários

CreateFile

DELETE_USN_JOURNAL_DATA

DeviceIoControl

FSCTL_CREATE_USN_JOURNAL

SOBREPOSTOS

códigos de controle de gerenciamento de volume