PRJ_GET_DIRECTORY_ENUMERATION_CB função de retorno de chamada (projectedfslib.h)
Solicita informações de enumeração de diretório do provedor.
Sintaxe
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
)
{...}
Parâmetros
[in] callbackData
Informações sobre a operação. Os seguintes membros callbackData são necessários para implementar esse retorno de chamada:
- FilePathName Identifica o diretório a ser enumerado.
- Versioninfo Fornece informações de versão para o diretório a ser enumerado.
- Sinalizadores Sinalizadores para controlar o que é retornado na enumeração . Os valores válidos são:
PRJ_CB_DATA_FLAG_ENUM_RETURN_SINGLE_ENTRY Esse bit será definido se o usuário estiver solicitando apenas uma entrada da enumeração . O provedor pode tratar isso como uma dica e pode optar por retornar mais de uma entrada para tornar uma enumeração que retorna um item por vez mais eficiente. Nesse caso, o ProjFS retornará uma única entrada para o usuário, invocando o provedor somente quando precisar de mais entradas. PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN Esse bit será definido se a enumeração for iniciar na primeira entrada no diretório. Na primeira invocação desse retorno de chamada para uma sessão de enumeração, o provedor deve tratar esse sinalizador como definido, independentemente de seu valor. Todas as enumerações devem começar na primeira entrada. Em invocações subsequentes desse retorno de chamada, o provedor deve respeitar esse valor.
O provedor só pode acessar esse buffer enquanto o retorno de chamada estiver em execução. Se quiser aguardar a operação e exigir dados desse buffer, ele deverá fazer sua própria cópia dele.
[in] enumerationId
Um identificador para esta sessão de enumeração.
[in, optional] searchExpression
Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo especificando uma expressão de pesquisa. A expressão de pesquisa pode incluir caracteres curinga. O provedor deve usar a função PrjDoesNameContainWildCards para determinar se os curingas estão presentes em searchExpression e deve usar a função PrjFileNameMatch para determinar se uma entrada em seu repositório de suporte corresponde a uma expressão de pesquisa que contém curingas.
Esse parâmetro é opcional e pode ser NULL.
- Se esse parâmetro não for NULL, o provedor deverá retornar apenas as entradas de diretório cujos nomes correspondem à expressão de pesquisa.
- Se esse parâmetro for NULL, o provedor deverá retornar todas as entradas de diretório.
O provedor deve capturar o valor desse parâmetro na primeira invocação desse retorno de chamada para uma sessão de enumeração e usá-lo em invocações subsequentes, ignorando esse parâmetro nessas invocações, a menos que PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN seja especificado no membro Flags de callbackData. Nesse caso, o provedor deve capturar novamente o valor de searchExpression.
[in] dirEntryBufferHandle
Um identificador opaco para uma estrutura que recebe os resultados da enumeração do provedor. O provedor usa a rotina PrjFillDirEntryBuffer para preencher a estrutura.
Retornar valor
Código de retorno | Descrição |
---|---|
|
O provedor adicionou com êxito pelo menos uma entrada a dirEntryBufferHandle ou nenhuma entrada na pesquisa de correspondência do repositório do provedorExpression. |
|
O provedor recebeu esse erro de PrjFillDirEntryBuffer para o primeiro arquivo ou diretório que tentou adicionar a dirEntryBufferHandle. |
|
O provedor deseja concluir a operação posteriormente. |
Um código de erro HRESULT apropriado se o provedor falhar na operação.
Comentários
O ProjFS invoca esse retorno de chamada uma ou mais vezes depois de invocar PRJ_START_DIRECTORY_ENUMERATION_CB. Consulte a seção Comentários do PRJ_START_DIRECTORY_ENUMERATION_CB para obter mais informações.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 1809 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | projectedfslib.h |