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
如果 callbackData 中的 FilePathName 字段引用目录,则为 TRUE,否则为 FALSE。
[in] notification
指定通知 的PRJ_NOTIFICATION 值。
[in, optional] destinationFileName
如果通知PRJ_NOTIFICATION_PRE_RENAME或PRJ_NOTIFICATION_PRE_SET_HARDLINK,则它指向以 null 结尾的 Unicode 字符串,该字符串指定重命名或 set-hardlink 操作的目标相对于虚拟化根路径。
[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 |
标头 | projectedfslib.h |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈