PRJ_NOTIFICATION_CB fonction de rappel (projectedfslib.h)
Remet des notifications au fournisseur sur les opérations du système de fichiers.
Syntaxe
PRJ_NOTIFICATION_CB PrjNotificationCb;
HRESULT PrjNotificationCb(
[in] const PRJ_CALLBACK_DATA *callbackData,
[in] BOOLEAN isDirectory,
[in] PRJ_NOTIFICATION notification,
[in, optional] PCWSTR destinationFileName,
[in, out] PRJ_NOTIFICATION_PARAMETERS *operationParameters
)
{...}
Paramètres
[in] callbackData
Informations sur l’opération. Les membres callbackData suivants sont nécessaires pour implémenter ce rappel :
- FilePathName Identifie le chemin du fichier ou du répertoire auquel la notification se rapporte.
Le fournisseur ne peut accéder à cette mémoire tampon que lorsque le rappel est en cours d’exécution. S’il souhaite empêcher l’opération et qu’il nécessite des données de cette mémoire tampon, il doit en faire sa propre copie.
[in] isDirectory
TRUE si le champ FilePathName dans callbackData fait référence à un répertoire, FALSE sinon.
[in] notification
Valeur PRJ_NOTIFICATION spécifiant la notification.
[in, optional] destinationFileName
Si la notification est PRJ_NOTIFICATION_PRE_RENAME ou PRJ_NOTIFICATION_PRE_SET_HARDLINK, cela pointe vers une chaîne Unicode terminée par null spécifiant le chemin, par rapport à la racine de virtualisation, de la cible de l’opération de renommage ou de liaison fixe.
[in, out] operationParameters
Pointeur vers une union PRJ_NOTIFICATION_PARAMETERS spécifiant des paramètres supplémentaires pour certaines valeurs de notification :
PRJ_NOTIFICATION_FILE_OPENED, PRJ_NOTIFICATION_NEW_FILE_CREATED ou PRJ_NOTIFICATION_FILE_OVERWRITTEN
-
Les champs du membre PostCreate sont spécifiés. Ces champs sont les suivants :
NotificationMask
-
Au retour du rappel PRJ_NOTIFICATION_CB, le fournisseur peut spécifier un nouvel ensemble de notifications qu’il souhaite recevoir pour le fichier ici.
Si le fournisseur définit cette valeur sur 0, cela revient à spécifier PRJ_NOTIFY_USE_EXISTING_MASK.
-
Au retour du rappel PRJ_NOTIFICATION_CB, le fournisseur peut spécifier un nouvel ensemble de notifications qu’il souhaite recevoir pour le fichier ici.
PRJ_NOTIFICATION_FILE_RENAMED
-
Les champs du membre FileRenamed sont spécifiés. Ces champs sont les suivants :
NotificationMask
-
Au retour du rappel PRJ_NOTIFICATION_CB, le fournisseur peut spécifier un nouvel ensemble de notifications qu’il souhaite recevoir pour le fichier ici.
Si le fournisseur définit cette valeur sur 0, cela revient à spécifier PRJ_NOTIFY_USE_EXISTING_MASK.
-
Au retour du rappel PRJ_NOTIFICATION_CB, le fournisseur peut spécifier un nouvel ensemble de notifications qu’il souhaite recevoir pour le fichier ici.
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED
-
Les champs du membre FileDeletedOnHandleClose sont spécifiés . Ces champs sont les suivants :
NotificationMask
- Si le fournisseur inscrit pour PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED et PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED, ce champ est défini sur TRUE si le fichier a été modifié avant sa suppression.
Valeur retournée
Code de retour | Description |
---|---|
|
Le fournisseur a correctement traité la notification. |
|
Le fournisseur souhaite terminer l’opération ultérieurement. |
Un code d’erreur HRESULT approprié si le fournisseur échoue à l’opération. Pour les notifications de préopération (opérations avec « PRE » dans leur nom), si le fournisseur retourne un code d’échec, ProjFS échouera l’opération correspondante avec le code d’erreur fourni.
Remarques
Ce rappel est facultatif. Si le fournisseur ne fournit pas d’implémentation de ce rappel, il ne recevra pas de notifications.
Le fournisseur s’inscrit aux notifications qu’il souhaite recevoir lorsqu’il appelle PrjStartVirtualizing.
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] |
Plateforme cible | Windows |
En-tête | projectedfslib.h |