Partager via


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.

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.

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
S_OK
Le fournisseur a correctement traité la notification.
HRESULT_FROM_WIN32(ERROR_IO_PENDING)
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