функция обратного вызова PRJ_NOTIFICATION_CB (projectedfslib.h)
Предоставляет поставщику уведомления об операциях файловой системы.
Синтаксис
PRJ_NOTIFICATION_CB PrjNotificationCb;
HRESULT PrjNotificationCb(
[in] const PRJ_CALLBACK_DATA *callbackData,
[in] BOOLEAN isDirectory,
[in] PRJ_NOTIFICATION notification,
[in, optional] PCWSTR destinationFileName,
[in, out] PRJ_NOTIFICATION_PARAMETERS *operationParameters
)
{...}
Параметры
[in] callbackData
Сведения об операции. Для реализации этого обратного вызова необходимы следующие члены callbackData :
- FilePathName Определяет путь к файлу или каталогу, к которому относится уведомление.
Поставщик может получить доступ к этому буферу только во время выполнения обратного вызова. Если требуется выполнить операцию и ей требуются данные из этого буфера, необходимо создать ее собственную копию.
[in] isDirectory
Значение TRUE, если поле FilePathName в callbackData ссылается на каталог, в противном случае — false.
[in] notification
Значение PRJ_NOTIFICATION , указывающее уведомление.
[in, optional] destinationFileName
Если уведомлениеPRJ_NOTIFICATION_PRE_RENAME или PRJ_NOTIFICATION_PRE_SET_HARDLINK, это указывает на строку Юникода со значением NULL, указывающую путь относительно корня виртуализации целевого объекта операции переименования или установки жесткой связи.
[in, out] operationParameters
Указатель на PRJ_NOTIFICATION_PARAMETERS объединение, указывающее дополнительные параметры для определенных значений уведомления:
PRJ_NOTIFICATION_FILE_OPENED, PRJ_NOTIFICATION_NEW_FILE_CREATED или PRJ_NOTIFICATION_FILE_OVERWRITTEN
-
Указаны поля элемента PostCreate . В число этих полей входят следующие.
NotificationMask
-
После возвращения из PRJ_NOTIFICATION_CB обратного вызова поставщик может указать новый набор уведомлений, которые он хочет получить для файла здесь.
Если поставщик задает для этого значения значение 0, это эквивалентно указанию PRJ_NOTIFY_USE_EXISTING_MASK.
-
После возвращения из PRJ_NOTIFICATION_CB обратного вызова поставщик может указать новый набор уведомлений, которые он хочет получить для файла здесь.
PRJ_NOTIFICATION_FILE_RENAMED
-
Указаны поля элемента FileRenamed . В число этих полей входят следующие.
NotificationMask
-
После возвращения из PRJ_NOTIFICATION_CB обратного вызова поставщик может указать новый набор уведомлений, которые он хочет получить для файла здесь.
Если поставщик задает для этого значения значение 0, это эквивалентно указанию PRJ_NOTIFY_USE_EXISTING_MASK.
-
После возвращения из PRJ_NOTIFICATION_CB обратного вызова поставщик может указать новый набор уведомлений, которые он хочет получить для файла здесь.
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED
-
Указаны поля элемента FileDeletedOnHandleClose . В число этих полей входят следующие.
NotificationMask
- Если поставщик зарегистрирован для PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED , а также PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED, это поле имеет значение TRUE, если файл был изменен до его удаления.
Возвращаемое значение
Код возврата | Описание |
---|---|
|
Поставщик успешно обработал уведомление. |
|
Поставщик хочет завершить операцию позже. |
Соответствующий код ошибки HRESULT, если поставщик не выполняет операцию. Для уведомлений перед операцией (операции с именем PRE), если поставщик возвращает код сбоя, ProjFS завершится сбоем соответствующей операции с указанным кодом ошибки.
Комментарии
Этот обратный вызов необязателен. Если поставщик не предоставляет реализацию этого обратного вызова, он не будет получать уведомления.
Поставщик регистрирует уведомления, которые он хочет получать при вызове PrjStartVirtualizing.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10, версия 1809 [только классические приложения] |
Минимальная версия сервера | Windows Server [только классические приложения] |
Целевая платформа | Windows |
Header | projectedfslib.h |