PRJ_NOTIFICATION 枚举 (projectedfslib.h)

发送 PRJ_NOTIFICATION_CB回调时指定的通知值。

语法

typedef enum PRJ_NOTIFICATION {
  PRJ_NOTIFICATION_FILE_OPENED = 0x00000002,
  PRJ_NOTIFICATION_NEW_FILE_CREATED = 0x00000004,
  PRJ_NOTIFICATION_FILE_OVERWRITTEN = 0x00000008,
  PRJ_NOTIFICATION_PRE_DELETE = 0x00000010,
  PRJ_NOTIFICATION_PRE_RENAME = 0x00000020,
  PRJ_NOTIFICATION_PRE_SET_HARDLINK = 0x00000040,
  PRJ_NOTIFICATION_FILE_RENAMED = 0x00000080,
  PRJ_NOTIFICATION_HARDLINK_CREATED = 0x00000100,
  PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_NO_MODIFICATION = 0x00000200,
  PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_MODIFIED = 0x00000400,
  PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED = 0x00000800,
  PRJ_NOTIFICATION_FILE_PRE_CONVERT_TO_FULL = 0x00001000
} ;

常量

 
PRJ_NOTIFICATION_FILE_OPENED
值: 0x00000002
- 指示已为现有文件或文件夹创建句柄。
- 提供程序可以在响应通知时为此文件或文件夹指定新的通知掩码。
PRJ_NOTIFICATION_NEW_FILE_CREATED
值: 0x00000004
- 已创建新文件或文件夹。
- 提供程序可以在响应通知时为此文件或文件夹指定新的通知掩码。
PRJ_NOTIFICATION_FILE_OVERWRITTEN
值: 0x00000008
- 现有文件已被覆盖或取代。
- 提供程序可以在响应通知时为此文件或文件夹指定新的通知掩码。
PRJ_NOTIFICATION_PRE_DELETE
值: 0x00000010
- 即将删除文件或文件夹。
- 如果提供程序从回调返回错误 HRESULT 代码,则删除不会生效。
PRJ_NOTIFICATION_PRE_RENAME
值: 0x00000020
- 文件或文件夹即将重命名。
- 如果提供程序从回调返回错误 HRESULT 代码,则重命名不会生效。
- 如果 PRJ_NOTIFICATION_CB 的 callbackData-FilePathName> 参数为空字符串,则表示重命名正在从虚拟化实例外部移动文件/目录。 在这种情况下,如果提供程序已注册 PRJ_NOTIFICATION_CB回调, 则始终发送此通知,即使提供程序在注册包含目标路径的子树时未指定此位。 但是,如果在注册包含目标路径的子树时PRJ_NOTIFICATION_SUPPRESS_NOTIFICATIONS指定的提供程序,则会禁止通知。
- 如果 PRJ_NOTIFICATION_CB 的 destinationFileName 参数为空字符串,则表示重命名将文件/文件夹移出虚拟化实例。
- 如果 PRJ_NOTIFICATION_CB 的 callbackData-FilePathName> 和 destinationFileName 参数都是非空字符串,则表示重命名位于虚拟化实例中。 如果提供程序在 PrjStartVirtualizing 的 options 参数的 NotificationMappings 成员中为源和目标路径指定了不同的通知掩码,则如果提供程序在注册源或目标路径时指定了此位,则将发送此通知。
PRJ_NOTIFICATION_PRE_SET_HARDLINK
值: 0x00000040
- 即将为文件创建硬链接。
- 如果提供程序从回调返回错误 HRESULT 代码,则硬链接操作将不会生效。
- 如果 PRJ_NOTIFICATION_CB 的 callbackData-FilePathName> 参数为空字符串,则表示将在虚拟化实例中创建硬链接名称,即在虚拟化实例内部创建一个新的硬链接,指向虚拟化实例外部存在的文件。 在这种情况下,如果提供程序已注册 PRJ_NOTIFICATION_CB 回调,则始终发送此通知,即使提供程序在注册新硬链接名称所在的子树时未指定此位。 但是,如果在注册包含目标路径的子树时PRJ_NOTIFICATION_SUPPRESS_NOTIFICATIONS指定的提供程序,则会禁止通知。
- 如果 PRJ_NOTIFICATION_CB 的 destinationFileName 参数为空字符串,则表示将在虚拟化实例外部创建硬链接名称,即在虚拟化实例外部为虚拟化实例中存在的文件创建新的硬链接。
- 如果 PRJ_NOTIFICATION_CB 的 callbackData-FilePathName> 和 destinationFileName 参数都是非空字符串,则表示将在虚拟化实例中为虚拟化实例中存在的文件创建新的硬链接。 如果提供程序在 PrjStartVirtualizing 的 options 参数的 NotificationMappings 成员中为源和目标路径指定了不同的通知掩码,则如果提供程序在注册源或目标路径时指定了此位,则将发送此通知。
PRJ_NOTIFICATION_FILE_RENAMED
值: 0x00000080
- 指示已重命名文件/文件夹。 文件/文件夹可能已移动到虚拟化实例中。
- 如果 PRJ_NOTIFICATION_CB 的 callbackData-FilePathName> 参数为空字符串,则表示重命名将文件/目录从虚拟化实例外部移动。 在这种情况下,如果提供程序已注册PRJ_NOTIFICATION_CB回调,ProjFS 将始终发送此通知,即使提供程序在注册包含目标路径的子树时未指定此位。
- 如果 PRJ_NOTIFICATION_CB 的 destinationFileName 参数为空字符串,则表示重命名将文件/目录移出虚拟化实例。
- 如果 PRJ_NOTIFICATION_CB 的 callbackData-FilePathName> 和 destinationFileName 参数都是非空字符串,则表示重命名位于虚拟化实例中。 如果提供程序在 PrjStartVirtualizing 的 options 参数的 NotificationMappings 成员中为源路径和目标路径指定了不同的通知掩码,则如果提供程序在注册源或目标路径时指定了此位,则 ProjFS 将发送此通知。
- 提供程序可以在响应通知时为此文件/目录指定新的通知掩码。
PRJ_NOTIFICATION_HARDLINK_CREATED
值: 0x00000100
- 指示已为文件创建硬链接。
- 如果 PRJ_NOTIFICATION_CB 的 callbackData-FilePathName> 参数为空字符串,则表示硬链接名称是在虚拟化实例中创建的,即在虚拟化实例内部创建了一个新的硬链接,指向虚拟化实例外部存在的文件。 在这种情况下,如果提供程序已注册PRJ_NOTIFICATION_CB回调,ProjFS 将始终发送此通知,即使提供程序在注册新硬链接名称所在的子树时未指定此位。
- 如果 PRJ_NOTIFICATION_CB 的 destinationFileName 参数为空字符串,则表示硬链接名称是在虚拟化实例外部创建的,即在虚拟化实例外部为虚拟化实例中存在的文件创建了一个新的硬链接。
- 如果 PRJ_NOTIFICATION_CB 的 callbackData-FilePathName> 和 destinationFileName 参数都是非空字符串,则表示虚拟化实例中为虚拟化实例中存在的文件创建了新的硬链接。 如果提供程序在 PrjStartVirtualizing 的 options 参数的 NotificationMappings 成员中为源路径和目标路径指定了不同的通知掩码,则如果提供程序在注册源或目标路径时指定了此位,则 ProjFS 将发送此通知。
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_NO_MODIFICATION
值: 0x00000200
- 文件/文件夹上的句柄已关闭,打开句柄时未修改文件内容,并且未删除文件/文件夹
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_MODIFIED
值: 0x00000400
- 文件上的句柄已关闭,并且该文件的内容在打开句柄时已修改。
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED
值: 0x00000800
- 文件/文件夹上的句柄已关闭,并且该句柄在关闭句柄时被删除。
- 如果提供程序还注册以接收PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_MODIFIED通知,并且使用关闭导致删除文件的句柄修改了文件,则 PRJ_NOTIFICATION_CB 的操作Parameters-FileDeletedOnHandleClose.IsFileModified> 参数将为 TRUE。 这仅适用于文件,不适用于目录
PRJ_NOTIFICATION_FILE_PRE_CONVERT_TO_FULL
值: 0x00001000
- 文件即将从占位符扩展到完整文件,即其内容可能会修改。
- 如果提供程序从回调返回错误 HRESULT 代码,则该文件不会扩展为完整文件,并且触发转换的 I/O 将失败。
- 如果有多个赛车 I/O 会扩展同一个文件,则提供程序将只收到该文件的此通知值一次。

要求

要求
最低受支持的客户端 Windows 10 版本 1809 [仅限桌面应用]
最低受支持的服务器 Windows Server [仅限桌面应用]
标头 projectedfslib.h