Partager via


FSCTL_DELETE_USN_JOURNAL IOCTL (winioctl.h)

Supprime le journal de modification du numéro de séquence de mise à jour (USN) sur un volume ou attend la notification de 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 superposées 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 de USN_DELETE_FLAG_NOTIFY est défini dans le DeleteFlags membre de DELETE_USN_JOURNAL_DATA.

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

Vous pouvez également utiliser FSCTL_DELETE_USN_JOURNAL pour recevoir une notification indiquant qu’une suppression de journal des modifications est terminée, en définissant uniquement USN_DELETE_FLAG_NOTIFY. Si c’est le 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 sur laquelle une application reçoit une notification peut avoir été lancée par le processus actuel ou 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, quittez.

La suppression complète d’un journal de modification nécessite une analyse du volume où réside le journal des modifications, ce qui peut prendre beaucoup de temps sur un volume avec de nombreux fichiers. L’opération continue d’être terminée même entre les redémarrages du système. Les tentatives de création, de modification, de suppression ou d’interrogation du journal des modifications pendant que la suppression échoue et retournent le code d’erreur ERROR_JOURNAL_DELETE_IN_PROGRESS.

L’opération de FSCTL_DELETE_USN_JOURNAL a un coût de performance significatif. 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 de modification.

Pour récupérer un handle vers 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 Supporté
Protocole SMB (Server Message Block) 3.0 Non
Basculement transparent SMB 3.0 (TFO) Non
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) Non
Cluster Shared Volume File System (CsvFS) Oui

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
d’en-tête winioctl.h (include Windows.h)

Voir aussi

CREATE_USN_JOURNAL_DATA

journal des modifications

CreateFile

DELETE_USN_JOURNAL_DATA

DeviceIoControl

FSCTL_CREATE_USN_JOURNAL

SUPERPOSÉ

codes de contrôle de gestion des volumes