Partager via


énumération PRJ_NOTIFY_TYPES (projectedfslib.h)

Types de notifications décrivant une modification apportée au fichier ou au dossier.

Syntax

typedef enum PRJ_NOTIFY_TYPES {
  PRJ_NOTIFY_NONE = 0x00000000,
  PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS = 0x00000001,
  PRJ_NOTIFY_FILE_OPENED = 0x00000002,
  PRJ_NOTIFY_NEW_FILE_CREATED = 0x00000004,
  PRJ_NOTIFY_FILE_OVERWRITTEN = 0x00000008,
  PRJ_NOTIFY_PRE_DELETE = 0x00000010,
  PRJ_NOTIFY_PRE_RENAME = 0x00000020,
  PRJ_NOTIFY_PRE_SET_HARDLINK = 0x00000040,
  PRJ_NOTIFY_FILE_RENAMED = 0x00000080,
  PRJ_NOTIFY_HARDLINK_CREATED = 0x00000100,
  PRJ_NOTIFY_FILE_HANDLE_CLOSED_NO_MODIFICATION = 0x00000200,
  PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED = 0x00000400,
  PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED = 0x00000800,
  PRJ_NOTIFY_FILE_PRE_CONVERT_TO_FULL = 0x00001000,
  PRJ_NOTIFY_USE_EXISTING_MASK = 0xFFFFFFFF
} ;

Constantes

 
PRJ_NOTIFY_NONE
Valeur : 0x00000000
aucune notification.
PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS
Valeur : 0x00000001
Si spécifié sur la virtualisation instance démarrez :

- Cela indique que les notifications ne doivent pas être envoyées pour le instance de virtualisation ou une sous-arborescence spécifiée du instance.

Si spécifié en réponse à une notification :

- Cela indique que les notifications ne doivent pas être envoyées pour le fichier ou dossier spécifié tant que tous les handles y sont fermés.

Note Si ce bit apparaît dans un masque de notification, il remplace tous les autres bits du masque. Par exemple, un masque valide avec ce bit est traité comme contenant uniquement PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS.

 
PRJ_NOTIFY_FILE_OPENED
Valeur : 0x00000002
Si spécifié sur la virtualisation instance démarrez :

- Cela indique que le fournisseur doit être averti lorsqu’un handle est créé dans un fichier ou un dossier existant.

Si spécifié en réponse à une notification :

- Cela indique que le fournisseur doit être averti si d’autres handles sont créés dans le fichier ou le dossier.
PRJ_NOTIFY_NEW_FILE_CREATED
Valeur : 0x00000004
Si spécifié sur la virtualisation instance démarrez :

- Le fournisseur doit être averti lorsqu’un nouveau fichier ou dossier est créé.

Si spécifié en réponse à une notification :

- Aucun effet.
PRJ_NOTIFY_FILE_OVERWRITTEN
Valeur : 0x00000008
Si spécifié sur la virtualisation instance démarrez :

- Indique que le fournisseur doit être averti lorsqu’un fichier existant est remplacé ou remplacé.

Si spécifié en réponse à une notification :

- Indique que le fournisseur doit être averti lorsque le fichier ou le dossier est remplacé ou remplacé.
PRJ_NOTIFY_PRE_DELETE
Valeur : 0x00000010
Si spécifié sur la virtualisation instance démarrez :

- Indique que le fournisseur doit être averti lorsqu’un fichier ou un dossier est sur le point d’être supprimé.

Si spécifié en réponse à une notification :

- Indique que le fournisseur doit être averti lorsqu’un fichier ou un dossier est sur le point d’être supprimé.
PRJ_NOTIFY_PRE_RENAME
Valeur : 0x00000020
Si spécifié sur la virtualisation instance démarrez :

- Indique que le fournisseur doit être averti lorsqu’un fichier ou un dossier est sur le point d’être renommé.

Si spécifié en réponse à une notification :

- Indique que le fournisseur doit être averti lorsqu’un fichier ou un dossier est sur le point d’être renommé.
PRJ_NOTIFY_PRE_SET_HARDLINK
Valeur : 0x00000040
Si spécifié sur la virtualisation instance démarrez :

- Indique que le fournisseur doit être averti lorsqu’un lien physique est sur le point d’être créé pour un fichier.

Si spécifié en réponse à une notification :

- Indique que le fournisseur doit être averti lorsqu’un lien physique est sur le point d’être créé pour un fichier.
PRJ_NOTIFY_FILE_RENAMED
Valeur : 0x00000080
Si spécifié sur la virtualisation instance démarrez :

- Indique que le fournisseur doit être averti qu’un fichier ou un dossier a été renommé.

Si spécifié en réponse à une notification :

- Indique que le fournisseur doit être averti lorsqu’un fichier ou un dossier a été renommé.
PRJ_NOTIFY_HARDLINK_CREATED
Valeur : 0x00000100
Si spécifié sur la virtualisation instance démarrez :

- Indique que le fournisseur doit être averti qu’un lien physique a été créé pour un fichier.

Si spécifié en réponse à une notification :

- Indique que le fournisseur doit être averti qu’un lien physique a été créé pour le fichier.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_NO_MODIFICATION
Valeur : 0x00000200
Si spécifié sur la virtualisation instance démarrez :

- Le fournisseur doit être averti lorsqu’un handle est fermé sur un fichier/dossier et que le handle de fermeture ne le modifie ni ne le supprime.

Si spécifié en réponse à une notification :

- Le fournisseur doit être averti lorsque les handles sont fermés pour le fichier/dossier et qu’aucune modification ou suppression n’a été associée au handle fermant.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED
Valeur : 0x00000400
Si spécifié sur la virtualisation instance démarrez :

- Le fournisseur doit être averti lorsqu’un handle est fermé sur un fichier/dossier et que le handle de fermeture a été utilisé pour le modifier.

Si spécifié en réponse à une notification :

- Le fournisseur doit être averti lorsqu’un handle est fermé sur le fichier/dossier et que le handle fermant a été utilisé pour le modifier.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED
Valeur : 0x00000800
Si spécifié sur la virtualisation instance démarrez :

- Le fournisseur doit être averti lorsqu’un handle est fermé sur un fichier/dossier et qu’il est supprimé dans le cadre de la fermeture du handle.

Si spécifié en réponse à une notification :

- Le fournisseur doit être averti lorsqu’un handle est fermé sur le fichier/dossier et qu’il est supprimé dans le cadre de la fermeture du handle.
PRJ_NOTIFY_FILE_PRE_CONVERT_TO_FULL
Valeur : 0x00001000
Si spécifié sur la virtualisation instance démarrez :

- Le fournisseur doit être averti lorsqu’il est sur le point de convertir un espace réservé en fichier complet.

Si spécifié en réponse à une notification :

- Le fournisseur doit être averti lorsqu’il est sur le point de convertir l’espace réservé en fichier complet, en supposant qu’il s’agit d’un espace réservé et pas déjà d’un fichier complet.
PRJ_NOTIFY_USE_EXISTING_MASK
Valeur : 0xFFFFFFFF
Si spécifié sur la virtualisation instance démarrez :

- Cette valeur n’est pas valide sur la virtualisation instance démarrer.

Si spécifié en réponse à une notification :

- Continuez à utiliser l’ensemble existant de notifications pour ce fichier/dossier.

Remarques

ProjFS peut envoyer des notifications d’activité du système de fichiers à un fournisseur. Lorsque le fournisseur démarre une virtualisation instance il spécifie les notifications qu’il souhaite recevoir. Il peut également spécifier un nouvel ensemble de notifications pour un fichier lors de sa création ou de son renommage. Le fournisseur doit inscrire une routine de rappel de notification PRJ_NOTIFICATION_CB dans le paramètre rappels de PrjStartVirtualizing pour recevoir des notifications.

ProjFS envoie des notifications pour les fichiers et les répertoires au sein d’une racine de virtualisation active. Autrement dit, ProjFS envoie des notifications pour la racine de virtualisation et ses descendants. Les liens symboliques et les jonctions au sein de la racine de virtualisation ne sont pas parcourus lors de la détermination de ce qui constitue un descendant de la racine de virtualisation.

ProjFS envoie des notifications uniquement pour le flux de données principal d’un fichier. ProjFS n’envoie pas de notifications pour les opérations sur d’autres flux de données.

ProjFS n’envoie pas de notifications pour un instance de virtualisation inactif. Un instance de virtualisation est inactif si l’une des conditions suivantes est vraie :

Le fournisseur peut spécifier les notifications qu’il souhaite recevoir lors du démarrage d’un instance de virtualisation ou en réponse à une notification qui permet de définir un nouveau masque de notification.

Le fournisseur spécifie un ensemble par défaut de notifications qu’il souhaite que ProjFS envoie pour le instance de virtualisation lorsqu’il démarre le instance. Cet ensemble de notifications est fourni dans le membre NotificationMappings du paramètre options de PrjStartVirtualizing, qui peut spécifier différents masques de notification pour différentes sous-arborescences du instance de virtualisation.

Le fournisseur peut choisir de fournir un autre masque de notification en réponse à une notification d’ouverture de fichier, de création, de remplacement/remplacement ou de renommage. ProjFS continuera à envoyer ces notifications pour le fichier donné jusqu’à ce que tous les handles du fichier soient fermés. Après cela, le jeu de notifications par défaut est rétabli. Naturellement, si le jeu de notifications par défaut ne spécifie pas que ProjFS doit notifier l’ouverture, la création, etc., le fournisseur n’aura pas la possibilité de spécifier un masque différent pour ces opérations.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 1809 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server [applications de bureau uniquement]
En-tête projectedfslib.h