Partager via


énumération CSV_CONTROL_OP (ntifs.h)

Spécifie le type d’opération de contrôle de volume partagé de cluster à utiliser avec le code de contrôle FSCTL_CSV_CONTROL.

Syntaxe

typedef enum _CSV_CONTROL_OP {
  CsvControlStartRedirectFile = 0x02,
  CsvControlStopRedirectFile = 0x03,
  CsvControlQueryRedirectState = 0x04,
  CsvControlQueryFileRevision = 0x06,
  CsvControlQueryMdsPath = 0x08,
  CsvControlQueryFileRevisionFileId128 = 0x09,
  CsvControlQueryVolumeRedirectState = 0x0a,
  CsvControlEnableUSNRangeModificationTracking = 0x0d,
  CsvControlMarkHandleLocalVolumeMount = 0x0e,
  CsvControlUnmarkHandleLocalVolumeMount = 0x0f,
  CsvControlGetCsvFsMdsPathV2 = 0x12,
  CsvControlDisableCaching = 0x13,
  CsvControlEnableCaching = 0x14,
  CsvControlStartForceDFO = 0x15,
  CsvControlStopForceDFO = 0x16,
  CsvControlQueryMdsPathNoPause = 0x17,
  CsvControlSetVolumeId = 0x18,
  CsvControlQueryVolumeId = 0x19
} CSV_CONTROL_OP, *PCSV_CONTROL_OP;

Constantes

 
CsvControlStartRedirectFile
Valeur : 0x02
Démarre la redirection de fichiers CSV.
CsvControlStopRedirectFile
Valeur : 0x03
Arrête la redirection de fichiers CSV.
CsvControlQueryRedirectState
Valeur : 0x04
Recherchez la redirection d’état. Lorsque cette valeur est spécifiée, la structure CSV_QUERY_REDIRECT_STATE doit également être utilisée.
CsvControlQueryFileRevision
Valeur : 0x06
Recherchez la révision du fichier. Lorsque cette valeur est spécifiée, la structure CSV_QUERY_FILE_REVISION doit également être utilisée.
CsvControlQueryMdsPath
Valeur : 0x08
Recherchez le chemin MDS. Lorsque cette valeur est spécifiée, la structure CSV_QUERY_MDS_PATH doit également être utilisée.
CsvControlQueryFileRevisionFileId128
Valeur : 0x09
Recherchez la révision de fichier 128 bits. Lorsque cette valeur est spécifiée, la structure CSV_QUERY_FILE_REVISION_FILE_ID_128 doit également être utilisée.
CsvControlQueryVolumeRedirectState
Valeur : 0x0a
Recherchez la redirection de l’état du volume. Lorsque cette valeur est spécifiée, la structure CSV_QUERY_VOLUME_REDIRECT_STATE doit également être utilisée.
CsvControlEnableUSNRangeModificationTracking
Valeur : 0x0d
Activez le suivi des plages USN.
CsvControlMarkHandleLocalVolumeMount
Valeur : 0x0e
Lorsqu’un fichier de disque dur virtuel est sur le point d’être monté en boucle, marque un handle et demande à CVSFS d’échouer des E/S et de invalider les handles après un délai d’expiration court (actuellement 20 secondes) si aucune E/S n’effectue de progression.
CsvControlUnmarkHandleLocalVolumeMount
Valeur : 0x0f
Lorsqu’un fichier de disque dur virtuel est sur le point d’être monté en boucle, annule le montage d’un handle qui avait été précédemment marqué par CsvControlMarkHandleLocalVolumeMount.
CsvControlGetCsvFsMdsPathV2
Valeur : 0x12
Recherchez la version 2 du chemin MDS. Lorsque cette valeur est spécifiée, la structure CSV_QUERY_MDS_PATH_V2 doit également être utilisée.
CsvControlDisableCaching
Valeur : 0x13
Désactive la mise en cache du fichier CSV.
CsvControlEnableCaching
Valeur : 0x14
Active la mise en cache du fichier CSV.
CsvControlStartForceDFO
Valeur : 0x15
Force CSVFS à commencer à transférer des E/S de bas niveau sur un objet de fichier de bas niveau (DFO). Pour plus d’informations, consultez les remarques.
CsvControlStopForceDFO
Valeur : 0x16
Arrêtez de forcer le transfert d’E/S de CSVFS sur un DFO. Pour plus d’informations, consultez les remarques.
CsvControlQueryMdsPathNoPause
Valeur : 0x17
Similaire à CsvControlQueryMdsPath. Recherchez le chemin MDS, mais si le volume CSV est suspendu au moment de la requête, définissez MdsNodeId sur 0xFFFFFFFF au lieu de renvoyer le dernier nœud de coordination. Cela permet au client de détecter que le nœud de coordination peut changer. Lorsque CsvControlQueryMdsPathNoPause est spécifié, la structure CSV_QUERY_MDS_PATH doit également être utilisée.
CsvControlSetVolumeId
Valeur : 0x18
Définissez le GUID du volume CSV. Pour plus d’informations, consultez les remarques.
CsvControlQueryVolumeId
Valeur : 0x19
Interrogez si le GUID du volume CSV est disponible. Pour plus d’informations, consultez les remarques.

Remarques

Une alternative à l’appel du code de contrôle FSCTL_CSV_CONTROL avec cette énumération consiste à utiliser la structure CSV_CONTROL_PARAM, qui encapsule un membre de ce type d’énumération.

CsvControlStartForceDFO et CsvControlStopForceDFO

Lorsqu’un objet de fichier est ouvert sur CSVFS, CSVFS s’ouvre sur le système de fichiers de bas niveau (NTFS ou REFS) un objet de fichier de bas niveau correspondant à chaque utilisateur ouvert. Cet objet de fichier est ouvert dans le cadre d’une application ouvrant un fichier sur CSVFS et est fermé lorsque l’application ferme le handle de l’objet de fichier sur CSVFS. En interne, CSVFS ouvre un objet de fichier supplémentaire appelé objet de fichier de pagination (PFO) partagé entre tous les ouvertures du même fichier sur CSVFS. Par défaut, CSVFS l’utilise pour de nombreuses opérations, telles que les suivantes :

  • Négociation Oplock
  • Verrous de plage d’octets
  • Transfert d’E/S de pagination

Certaines solutions de filtrage peuvent marquer le handle d’une manière spéciale, puis s’attendre à ce que toutes les lectures et écritures soient transférées de bas niveau par CSVFS sur le DFO correspondant. Une application peut forcer CSVFS à commencer à transférer des E/S de bas niveau sur le DFO en envoyant CsvControlStartForceDFO. Plus tard, l’application peut utiliser CsvControlStopForceDFO pour revenir au comportement par défaut. La fermeture du handle utilisé pour envoyer CsvControlStartForceDFO rétablit implicitement comme si l’application a envoyé CsvControlStopForceDFO.

CsvControlSetVolumeId et CsvControlQueryVolumeId

Ces contrôles permettent aux mini-filtres du système de fichiers attachés au système de fichiers de bas niveau sous CSVFS d’apprendre le GUID du volume CSV. La ressource de disque physique du cluster définit ce GUID après le montage du système de fichiers de bas niveau afin qu’elle ne soit pas disponible si le filtre est attaché pendant le montage. Pendant l’attachement de filtre, le minifilter du système de fichiers peut émettre CsvControlQueryVolumeId pour interroger si le GUID est déjà disponible. Le contrôle doit être envoyé en haut de la pile pour vous assurer que csvflt la reçoit. Si le GUID du volume n’est pas encore disponible, csvflt retourne STATUS_UNSUCCESSFUL. Le filtre ne doit pas échouer à attacher si le GUID du volume n’est pas encore disponible.

À un stade ultérieur, la ressource de disque physique envoie CsvControlSetVolumeId avec le GUID du volume. Chaque filtre sur la pile peut utiliser le contrôle CsvControlSetVolumeId pour stocker le GUID du volume. Les filtres ne doivent pas terminer ce contrôle. Au lieu de cela, ils doivent l’autoriser à descendre dans la pile, ce qui permet à d’autres filtres de stocker le GUID.

Exigences

Exigence Valeur
d’en-tête ntifs.h

Voir aussi

énumérations de gestion de fichiers

CSV_CONTROL_PARAM

CSV_QUERY_FILE_REVISION

CSV_QUERY_MDS_PATH

CSV_QUERY_REDIRECT_STATE

FSCTL_CSV_CONTROL