функция обратного вызова PRJ_GET_DIRECTORY_ENUMERATION_CB (projectedfslib.h)
Запрашивает сведения о перечислении каталога у поставщика.
Синтаксис
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
)
{...}
Параметры
[in] callbackData
Сведения об операции. Для реализации этого обратного вызова необходимы следующие члены callbackData :
- FilePathName Определяет каталог для перечисления.
- VersionInfo Предоставляет сведения о версии для перечисляемого каталога.
- Флаги Флаги для управления тем, что возвращается в перечислении. Допустимые значения:
PRJ_CB_DATA_FLAG_ENUM_RETURN_SINGLE_ENTRY Этот бит устанавливается, если пользователь запрашивает только одну запись из перечисления. Поставщик может рассматривать это как подсказку и может выбрать возврат нескольких записей, чтобы сделать перечисление, возвращающее один элемент за раз, более эффективным. В этом случае ProjFS вернет пользователю одну запись, вызывая поставщик только в том случае, если ему требуется больше записей. PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN Этот бит задается, если перечисление начинается с первой записи в каталоге. При первом вызове этого обратного вызова для сеанса перечисления поставщик должен рассматривать этот флаг как заданный, независимо от его значения. Все перечисления должны начинаться с первой записи. При последующих вызовах этого обратного вызова поставщик должен учитывать это значение.
Поставщик может получить доступ к этому буферу только во время выполнения обратного вызова. Если требуется выполнить операцию и ей требуются данные из этого буфера, необходимо создать ее собственную копию.
[in] enumerationId
Идентификатор для этого сеанса перечисления.
[in, optional] searchExpression
Указатель на строку Юникода, завершающуюся значением NULL, задающую выражение поиска. Выражение поиска может содержать подстановочные знаки. Поставщик должен использовать функцию PrjDoesNameContainWildCards , чтобы определить, присутствуют ли подстановочные знаки в searchExpression, и использовать функцию PrjFileNameMatch , чтобы определить, соответствует ли запись в резервном хранилище выражению поиска, содержащему подстановочные знаки.
Этот параметр является необязательным и может иметь значение NULL.
- Если этот параметр не равен NULL, поставщик должен возвращать только те записи каталога, имена которых соответствуют выражению поиска.
- Если этот параметр имеет значение NULL, поставщик должен вернуть все записи каталога.
Поставщик должен записать значение этого параметра при первом вызове этого обратного вызова для сеанса перечисления и использовать его в последующих вызовах, игнорируя этот параметр в этих вызовах, если PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN не указан в элементе FlagscallbackData. В этом случае поставщик должен повторно записать значение searchExpression.
[in] dirEntryBufferHandle
Непрозрачный дескриптор структуры, которая получает результаты перечисления от поставщика. Поставщик использует подпрограмму PrjFillDirEntryBuffer для заполнения структуры.
Возвращаемое значение
Код возврата | Описание |
---|---|
|
Поставщик успешно добавил по крайней мере одну запись в dirEntryBufferHandle или не добавил ни одной записи в поиске соответствия хранилища поставщика. |
|
Поставщик получил эту ошибку от PrjFillDirEntryBuffer для первого файла или каталога, который он пытался добавить в dirEntryBufferHandle. |
|
Поставщик хочет завершить операцию позже. |
Соответствующий код ошибки HRESULT, если поставщик не выполняет операцию.
Комментарии
ProjFS вызывает этот обратный вызов один или несколько раз после вызова PRJ_START_DIRECTORY_ENUMERATION_CB. Дополнительные сведения см. в разделе Примечания PRJ_START_DIRECTORY_ENUMERATION_CB .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10, версия 1809 [только классические приложения] |
Минимальная версия сервера | Windows Server [только классические приложения] |
Целевая платформа | Windows |
Header | projectedfslib.h |