Поделиться через


функция обратного вызова PRJ_GET_FILE_DATA_CB (projectedfslib.h)

Запрашивает содержимое основного потока данных файла.

Синтаксис

PRJ_GET_FILE_DATA_CB PrjGetFileDataCb;

HRESULT PrjGetFileDataCb(
  [in] const PRJ_CALLBACK_DATA *callbackData,
  [in] UINT64 byteOffset,
  [in] UINT32 length
)
{...}

Параметры

[in] callbackData

Сведения об операции. Для реализации этого обратного вызова необходимы следующие члены callbackData :

FilePathName Определяет путь к файлу в резервном хранилище поставщика, для которого должны возвращаться данные. Обратите внимание, что оно отражает имя файла при первом создании заполнителя. Если он был переименован с тех пор, FilePathName определяет исходное (предварительное переименование) имя, а не текущее (после переименования).
DataStreamIdУникальное значение, которое необходимо связать с данным потоком файлов. Поставщик должен передать это значение в параметре dataStreamIdprjWriteFileData при предоставлении данных файла в рамках обработки этого обратного вызова.
VersionInfo Предоставляет PRJ_PLACEHOLDER_VERSION_INFO сведения, предоставленные поставщиком при создании заполнителя для этого файла. Это может помочь поставщику определить, какую версию содержимого файла следует вернуть. Если файл был переименован, а поставщик отслеживает переименование, это также может помочь поставщику определить, какое содержимое файла запрашивается.

Поставщик может получить доступ к этому буферу только во время выполнения обратного вызова. Если требуется выполнить операцию и ей требуются данные из этого буфера, необходимо создать ее собственную копию.

[in] byteOffset

Смещение запрошенных данных в байтах от начала файла. Поставщик должен возвращать данные файла, начиная с или до этого смещения.

[in] length

Количество байтов запрошенных данных файла. Поставщик должен возвращать по крайней мере это количество байт файловых данных, начиная с byteOffset.

Возвращаемое значение

Код возврата Описание
S_OK
Поставщик успешно вернул все запрошенные данные.
HRESULT_FROM_WIN32(ERROR_IO_PENDING)
Поставщик хочет завершить операцию позже.
 

Соответствующий код ошибки HRESULT, если поставщик не выполняет операцию.

Комментарии

Когда ProjFS получает данные, он записывает их в файл, чтобы преобразовать их в гидратированный заполнитель.

Для обработки этого обратного вызова поставщик выполняет один или несколько вызовов PrjWriteFileData , чтобы предоставить ProjFS запрошенное содержимое основного потока данных файла. Затем поставщик завершает обратный вызов.

Требования

Требование Значение
Минимальная версия клиента Windows 10, версия 1809 [только классические приложения]
Минимальная версия сервера Windows Server [только классические приложения]
Целевая платформа Windows
Header projectedfslib.h