FSCTL_DELETE_USN_JOURNAL IOCTL (winioctl.h)

Exclui o diário de alterações de USN (números de sequência de atualização) em um volume ou aguarda a notificação de exclusão do diário de alterações.

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

Comentários

Para obter as implicações de 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 USN_DELETE_FLAG_NOTIFY seja definido no membro DeleteFlags 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 uma notificação de que uma exclusão de diário de alteração foi 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 por 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 entre reinicializações do sistema. As tentativas de criar, modificar, excluir ou consultar o diário de alterações enquanto a exclusão está em andamento falham e retornam o código de erro ERROR_JOURNAL_DELETE_IN_PROGRESS.

A operação de 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 aproximar do valor máximo de USN possível.

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 formato:

\.\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 Com suporte
Protocolo SMB (SMB) 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 Clusterizado (CsvFS) Sim

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho winioctl.h (inclua Windows.h)

Confira também

CREATE_USN_JOURNAL_DATA

Diários de alterações

CreateFile

DELETE_USN_JOURNAL_DATA

DeviceIoControl

FSCTL_CREATE_USN_JOURNAL

OVERLAPPED

Códigos de controle de gerenciamento de volume