PRJ_GET_DIRECTORY_ENUMERATION_CB fonction de rappel (projectedfslib.h)

Demande des informations d’énumération de répertoires au fournisseur.

Syntaxe

PRJ_GET_DIRECTORY_ENUMERATION_CB PrjGetDirectoryEnumerationCb;

HRESULT PrjGetDirectoryEnumerationCb(
  [in]           const PRJ_CALLBACK_DATA *callbackData,
  [in]           const GUID *enumerationId,
  [in, optional] PCWSTR searchExpression,
  [in]           PRJ_DIR_ENTRY_BUFFER_HANDLE dirEntryBufferHandle
)
{...}

Paramètres

[in] callbackData

Informations sur l’opération. Les membres callbackData suivants sont nécessaires pour implémenter ce rappel :

FilePathName Identifie le répertoire à énumérer.
VersionInfo Fournit des informations de version pour le répertoire à énumérer.
Drapeaux Indicateurs pour contrôler ce qui est retourné dans l’énumération. Les valeurs autorisées sont :
PRJ_CB_DATA_FLAG_ENUM_RETURN_SINGLE_ENTRY Ce bit est défini si l’utilisateur ne demande qu’une seule entrée de l’énumération. Le fournisseur peut traiter cela comme un indicateur et peut choisir de retourner plusieurs entrées pour rendre une énumération qui retourne un élément à la fois plus efficace. Dans ce cas, ProjFS retourne une seule entrée à l’utilisateur, en appelant le fournisseur uniquement lorsqu’il a besoin d’entrées supplémentaires.
PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN Ce bit est défini si l’énumération doit commencer à la première entrée du répertoire. Lors du premier appel de ce rappel pour une session d’énumération, le fournisseur doit traiter cet indicateur comme défini, quelle que soit sa valeur. Toutes les énumérations doivent commencer à la première entrée. Lors des appels suivants de ce rappel, le fournisseur doit respecter cette valeur.
 

Le fournisseur peut accéder à cette mémoire tampon uniquement pendant l’exécution du rappel. S’il souhaite mettre en suspension l’opération et qu’il a besoin de données de cette mémoire tampon, il doit en faire sa propre copie.

[in] enumerationId

Identificateur de cette session d’énumération.

[in, optional] searchExpression

Pointeur vers une chaîne Unicode terminée par un caractère Null spécifiant une expression de recherche. L’expression de recherche peut inclure des caractères génériques. Le fournisseur doit utiliser la fonction PrjDoesNameContainWildCards pour déterminer si des caractères génériques sont présents dans searchExpression, et il doit utiliser la fonction PrjFileNameMatch pour déterminer si une entrée dans son magasin de stockage correspond à une expression de recherche contenant des caractères génériques.

Ce paramètre est facultatif et peut être NULL.

  • Si ce paramètre n’est pas NULL, le fournisseur doit retourner uniquement les entrées de répertoire dont les noms correspondent à l’expression de recherche.
  • Si ce paramètre a la valeur NULL, le fournisseur doit retourner toutes les entrées de répertoire.

Le fournisseur doit capturer la valeur de ce paramètre lors du premier appel de ce rappel pour une session d’énumération et l’utiliser sur les appels suivants, en ignorant ce paramètre sur ces appels, sauf si PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN est spécifié dans le membre Flags de callbackData. Dans ce cas, le fournisseur doit re-capturer la valeur de searchExpression.

[in] dirEntryBufferHandle

Handle opaque pour une structure qui reçoit les résultats de l’énumération du fournisseur. Le fournisseur utilise la routine PrjFillDirEntryBuffer pour remplir la structure.

Valeur retournée

Code de retour Description
S_OK
Le fournisseur a correctement ajouté au moins une entrée à dirEntryBufferHandle, ou aucune entrée dans le magasin du fournisseur ne correspond à searchExpression.
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
Le fournisseur a reçu cette erreur de PrjFillDirEntryBuffer pour le premier fichier ou répertoire qu’il a tenté d’ajouter à dirEntryBufferHandle.
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.

Remarques

ProjFS appelle ce rappel une ou plusieurs fois après avoir appelé PRJ_START_DIRECTORY_ENUMERATION_CB. Pour plus d’informations , consultez la section Remarques de PRJ_START_DIRECTORY_ENUMERATION_CB.

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