PRJ_GET_DIRECTORY_ENUMERATION_CB funzione di callback (projectedfslib.h)

Richiede informazioni sull'enumerazione della directory dal provider.

Sintassi

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
)
{...}

Parametri

[in] callbackData

Informazioni sull'operazione. I membri callbackData seguenti sono necessari per implementare questo callback:

FilePathName Identifica la directory da enumerare.
VersionInfo Fornisce informazioni sulla versione per l'enumerazione della directory.
Bandiere Flag per controllare cosa viene restituito nell'enumerazione. I valori validi sono:
PRJ_CB_DATA_FLAG_ENUM_RETURN_SINGLE_ENTRY Questo bit viene impostato se l'utente richiede una sola voce dall'enumerazione. Il provider può trattarlo come hint e può scegliere di restituire più di una voce per creare un'enumerazione che restituisce un elemento alla volta più efficiente. In tal caso ProjFS restituirà una sola voce all'utente, richiamando il provider solo quando necessita di più voci.
PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN Questo bit viene impostato se l'enumerazione deve iniziare alla prima voce della directory. Nella prima chiamata di questo callback per una sessione di enumerazione il provider deve considerare questo flag come impostato, indipendentemente dal relativo valore. Tutte le enumerazioni devono iniziare alla prima voce. Nelle chiamate successive di questo callback il provider deve rispettare questo valore.
 

Il provider può accedere a questo buffer solo mentre il callback è in esecuzione. Se desidera pennare l'operazione e richiede dati da questo buffer, deve crearne una copia.

[in] enumerationId

Identificatore per questa sessione di enumerazione.

[in, optional] searchExpression

Puntatore a una stringa Unicode con terminazione null specificando un'espressione di ricerca. L'espressione di ricerca può includere caratteri jolly. Il provider deve usare la funzione PrjDoesNameContainWildCards per determinare se i caratteri jolly sono presenti in searchExpression e deve usare la funzione PrjFileNameMatch per determinare se una voce nell'archivio di backup corrisponde a un'espressione di ricerca contenente caratteri jolly.

Questo parametro è facoltativo e può essere NULL.

  • Se questo parametro non è NULL, il provider deve restituire solo le voci della directory i cui nomi corrispondono all'espressione di ricerca.
  • Se questo parametro è NULL, il provider deve restituire tutte le voci della directory.

Il provider deve acquisire il valore di questo parametro nella prima chiamata di questo callback per una sessione di enumerazione e usarlo nelle chiamate successive, ignorando questo parametro su tali chiamate, a meno che non sia specificato PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN nel membro Flags di callbackData. In tal caso, il provider deve acquisire nuovamente il valore di searchExpression.

[in] dirEntryBufferHandle

Handle opaco a una struttura che riceve i risultati dell'enumerazione dal provider. Il provider usa la routine PrjFillDirEntryBuffer per riempire la struttura.

Valore restituito

Codice restituito Descrizione
S_OK
Il provider ha aggiunto almeno una voce a dirEntryBufferHandle o nessuna voce nella ricerca corrispondenza del provider.
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
Il provider ha ricevuto questo errore da PrjFillDirEntryBuffer per il primo file o directory che ha tentato di aggiungere a dirEntryBufferHandle.
HRESULT_FROM_WIN32(ERROR_IO_PENDING)
Il provider vuole completare l'operazione in un secondo momento.
 

Codice di errore HRESULT appropriato se il provider ha esito negativo.

Commenti

ProjFS richiama il callback una o più volte dopo aver richiamato PRJ_START_DIRECTORY_ENUMERATION_CB. Per altre informazioni, vedere la sezione Osservazioni di PRJ_START_DIRECTORY_ENUMERATION_CB .

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 1809 [solo app desktop]
Server minimo supportato Windows Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione projectedfslib.h