Share via


FSCTL_DELETE_USN_JOURNAL IOCTL (winioctl.h)

Supprime le journal de modifications du nombre de séquences de mise à jour (USN) sur un volume ou attend la notification de la suppression du journal des modifications.

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

Remarques

Pour connaître les implications des E/S qui se chevauchent sur cette opération, consultez la section Remarques de la rubrique DeviceIoControl .

Vous pouvez utiliser FSCTL_DELETE_USN_JOURNAL pour supprimer un journal des modifications. Le système de fichiers NTFS démarre une opération de suppression et retourne immédiatement au processus appelant, sauf si l’indicateur USN_DELETE_FLAG_NOTIFY est défini dans le membre DeleteFlags de DELETE_USN_JOURNAL_DATA.

Si les indicateurs USN_DELETE_FLAG_NOTIFY et USN_DELETE_FLAG_DELETE sont tous deux définis, un appel à FSCTL_DELETE_USN_JOURNAL démarre le processus de suppression. Ensuite, l’appel bloque le thread appelant et attend la suppression (sur un appel synchrone ou non superposé), ou configure la notification d’événement à l’aide d’un port d’achèvement d’E/S ou d’un autre mécanisme, puis retourne (sur un appel asynchrone ou superposé).

Vous pouvez également utiliser FSCTL_DELETE_USN_JOURNAL pour recevoir une notification indiquant qu’une suppression du journal des modifications est terminée, en définissant uniquement USN_DELETE_FLAG_NOTIFY. Dans ce cas, l’opération de FSCTL_DELETE_USN_JOURNAL attend la fin de la suppression avant de retourner (sur un appel synchrone ou non superposé), ou configure la notification d’événement à l’aide d’un port d’achèvement d’E/S ou d’un autre mécanisme (sur un appel asynchrone ou superposé).

La suppression à laquelle une application reçoit une notification peut avoir été initiée par le processus actuel ou par un autre processus. Par exemple, lorsqu’une application est démarrée, elle peut utiliser FSCTL_DELETE_USN_JOURNAL pour déterminer si une suppression démarrée par un autre processus est en cours et si c’est le cas, quitter.

La suppression complète d’un journal des modifications nécessite une analyse du volume où réside le journal des modifications, ce qui peut prendre beaucoup de temps sur un volume contenant de nombreux fichiers. L’opération continue à se terminer même lors des redémarrages du système. Les tentatives de création, de modification, de suppression ou d’interrogation du journal des modifications pendant la suppression en cours échouent et retournent le code d’erreur ERROR_JOURNAL_DELETE_IN_PROGRESS.

L’opération de FSCTL_DELETE_USN_JOURNAL a un coût de performances important. Elle doit donc être utilisée avec parcimonie. Un administrateur doit supprimer un journal lorsque la valeur USN actuelle approche de celle de la valeur USN maximale possible.

Pour plus d’informations, consultez Création, modification et suppression d’un journal des modifications.

Pour récupérer un handle dans un volume, appelez CreateFile avec le paramètre lpFileName défini sur une chaîne sous la forme suivante :

\.\X :

Dans la chaîne précédente, X est la lettre identifiant le lecteur sur lequel le volume apparaît. Le volume doit être NTFS.

Dans Windows 8 et Windows Server 2012, ce code est pris en charge par les technologies suivantes.

Technologie Prise en charge
Protocole Server Message Block (SMB) 3.0 Non
Basculement transparent SMB 3.0 (TFO) No
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) No
Système de fichiers du volume partagé de cluster (CsvFS) Oui

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête winioctl.h (inclure Windows.h)

Voir aussi

CREATE_USN_JOURNAL_DATA

Journaux des modifications

CreateFile

DELETE_USN_JOURNAL_DATA

DeviceIoControl

FSCTL_CREATE_USN_JOURNAL

OVERLAPPED

Codes de contrôle de gestion des volumes