Contient des informations utilisées pour marquer un fichier ou un répertoire spécifié et son enregistrement de journal de modification de numéro de séquence de mise à jour (USN) avec des données sur les modifications. Il est utilisé par le code de contrôle FSCTL_MARK_HANDLE.
L’opération ne modifie pas le fichier ou le répertoire en externe du point de vue de l’application qui l’a créée.
Lorsqu’un thread écrit un nouvel enregistrement USN, les indicateurs d’informations sources dans l’enregistrement précédent continuent d’être présents uniquement si le thread définit également ces indicateurs. Par conséquent, la structure des informations sources permet aux applications de filtrer les enregistrements USN définis uniquement par une source connue, comme un filtre antivirus.
Les valeurs suivantes sont définies.
Valeur
Signification
USN_SOURCE_DATA_MANAGEMENT
0x00000001
L’opération fournit des informations sur une modification du fichier ou du répertoire effectué par le système d’exploitation.
Une utilisation classique consiste à déplacer des données d’un stockage externe vers un stockage local. Le stockage distant est le logiciel de gestion hiérarchique du stockage. Un tel déplacement ajoute généralement au minimum l’indicateur de USN_REASON_DATA_OVERWRITE à un enregistrement USN. Toutefois, les données n’ont pas changé du point de vue de l’utilisateur. En notant USN_SOURCE_DATA_MANAGEMENT dans l'Membre sourceInfo de la structure USN_RECORD qui contient l’enregistrement, vous pouvez déterminer que même si une opération d’écriture est effectuée sur l’élément, les données n’ont pas changé.
USN_SOURCE_AUXILIARY_DATA
0x00000002
L’opération ajoute un flux de données privé à un fichier ou un répertoire.
Par exemple, un détecteur de virus ajoute des informations de somme de contrôle. Lorsque le détecteur de virus modifie l’élément, le système génère des enregistrements USN. USN_SOURCE_AUXILIARY_DATA indique que les modifications n’ont pas modifié les données de l’application.
USN_SOURCE_REPLICATION_MANAGEMENT
0x00000004
L’opération crée ou met à jour le contenu d’un fichier répliqué.
Par exemple, le service de réplication de fichiers définit cet indicateur lorsqu’il crée ou met à jour un fichier dans un répertoire répliqué.
USN_SOURCE_CLIENT_REPLICATION_MANAGEMENT
0x00000008
La réplication est effectuée sur les systèmes clients à partir du cloud ou des serveurs.
VolumeHandle
Handle de volume vers le volume où réside le fichier ou le répertoire. Pour plus d’informations sur l’obtention d’un handle de volume, consultez la section Remarques.
Ce handle est nécessaire pour vérifier les privilèges de cette opération.
L’appelant doit disposer du privilège SE_MANAGE_VOLUME_NAME. Pour plus d’informations, consultez Privilèges.
HandleInfo
Indicateur qui spécifie des informations supplémentaires sur le fichier ou le répertoire identifié par la valeur de handle dans le membre VolumeHandle.
Valeur
Signification
MARK_HANDLE_PROTECT_CLUSTERS
0x00000001
Le fichier est marqué comme étant incapable d’être défragmenté tant que le handle n’est pas fermé.
Une fois qu’un handle marqué MARK_HANDLE_PROTECT_CLUSTERS est fermé, il n’existe aucune garantie que les clusters du fichier ne se déplacent pas.
MARK_HANDLE_TXF_SYSTEM_LOG
0x00000004
Le fichier est marqué comme étant incapable d’être défragmenté tant que le handle n’est pas fermé.
Windows Server 2003 : Cet indicateur n’est pas pris en charge tant que Windows Server 2003 avec SP1.
Windows XP : Cet indicateur n’est pas pris en charge.
MARK_HANDLE_NOT_TXF_SYSTEM_LOG
0x00000008
Le fichier est marqué comme étant incapable d’être défragmenté tant que le handle n’est pas fermé.
Windows Server 2003 : Cet indicateur n’est pas pris en charge tant que Windows Server 2003 avec SP1.
Windows XP : Cet indicateur n’est pas pris en charge.
MARK_HANDLE_REALTIME
0x00000020
Le fichier est marqué pour le comportement de lecture en temps réel, quel que soit le type de fichier réel. Les fichiers marqués avec cet indicateur doivent être ouverts pour d’E/S nonbuffer.
Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : cet indicateur n’est pas pris en charge.
MARK_HANDLE_NOT_REALTIME
0x00000040
Le fichier précédemment marqué pour le comportement de lecture en temps réel à l’aide de l’indicateur de MARK_HANDLE_REALTIME peut être non marqué à l’aide de cet indicateur, en supprimant le comportement en temps réel. Les fichiers marqués avec cet indicateur doivent être ouverts pour d’E/S nonbuffer.
Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : cet indicateur n’est pas pris en charge.
MARK_HANDLE_READ_COPY
0x00000080
Indique le numéro de copie spécifié dans le membre CopyNumber doit être utilisé pour les lectures. Les fichiers marqués avec cet indicateur doivent être ouverts pour d’E/S nonbuffer.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : cet indicateur n’est pas pris en charge tant que Windows 8 et Windows Server 2012 ne sont pas pris en charge.
MARK_HANDLE_NOT_READ_COPY
0x00000100
Le fichier précédemment marqué pour le comportement de copie en lecture à l’aide de l’indicateur de MARK_HANDLE_READ_COPY peut être non marqué à l’aide de cet indicateur, en supprimant le comportement de copie en lecture. Les fichiers marqués avec cet indicateur doivent être ouverts pour d’E/S nonbuffer.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : cet indicateur n’est pas pris en charge tant que Windows 8 et Windows Server 2012 ne sont pas pris en charge.
MARK_HANDLE_RETURN_PURGE_FAILURE
0x00000400
Lors du mélange des E/S mappés/mis en cache avec des E/S non mis en cache, le système tente, lorsqu’un io non mis en cache est émis, de vider les mappages de mémoire pour la plage d’E/S non mis en cache. Si ces purges échouent normalement, le système ne retourne pas l’échec à l’appelant, ce qui peut entraîner un état endommagé (c’est pourquoi la documentation indique de ne pas le faire). Cet indicateur indique au système de retourner des échecs de vidage pour le handle donné afin que l’application puisse mieux gérer cette situation
Cet indicateur n’est pas pris en charge tant que Windows 8 et Windows Server 2012 ne sont pas pris en charge.
MARK_HANDLE_DISABLE_FILE_METADATA_OPTIMIZATION
0x00001000
Un fichier hautement fragmenté dans NTFS utilise plusieurs enregistrements MFT pour décrire toutes les étendues d’un fichier. Cette liste d’enregistrements MFT enfants (également appelés enregistrements FRS) est contrôlée par une structure appelée liste d’attributs. Une liste d’attributs est limitée à 128 Ko de taille. Lorsque la taille d’une liste d’attributs atteint un certain seuil NTFS déclenche un compactage d’arrière-plan sur les étendues afin que le nombre minimal d’enregistrements FRS enfants soit utilisé.
Cet indicateur désactive cette fonctionnalité de compactage FRS pour le fichier donné.
Cet indicateur n’est pas pris en charge tant que Windows 10 n’est pas pris en charge.
MARK_HANDLE_ENABLE_USN_SOURCE_ON_PAGING_IO
0x00002000
Indique à NTFS de définir la valeur UsnSourceInfo donnée sur les écritures pagination dans le journal USN. Traditionnellement, cela n’a pas été effectué sur les écritures de pagination, car le système ne connaissait pas le thread qui a apporté les modifications données. Il s’agit d’un remplacement. Cela fonctionne uniquement si fileObject que le gestionnaire de mémoire utilise cet état lui est associé.
Cet indicateur n’est pas pris en charge tant que Windows 10 n’est pas pris en charge.
MARK_HANDLE_SKIP_COHERENCY_SYNC_DISALLOW_WRITES
0x00004000
La définition de cet indicateur indique au système que les écritures ne sont pas autorisées sur ce fichier. Si une application tente d’ouvrir le fichier pour l’accès en écriture, l’opération échoue avec STATUS_ACCESS_DENIED.
Si une écriture est vue, l’opération a échoué avec STATUS_MARKED_TO_DISALLOW_WRITES
Cet indicateur n’est pas pris en charge tant que Windows 10 n’est pas pris en charge.
Remarques
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.
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]