é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 |