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


перечисление 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 из обратного вызова, переименование не вступит в силу.
— Если параметр callbackData-FilePathName>PRJ_NOTIFICATION_CB является пустой строкой, это означает, что переименование перемещает файл или каталог извне экземпляра виртуализации. В этом случае это уведомление всегда будет отправляться, если поставщик зарегистрировал обратный вызов PRJ_NOTIFICATION_CB , даже если поставщик не указал этот бит при регистрации поддеревья, содержащего путь назначения. Однако если указанный поставщик PRJ_NOTIFICATION_SUPPRESS_NOTIFICATIONS при регистрации поддеревья, содержащего целевой путь, уведомление будет подавлено.
— Если параметр destinationFileName PRJ_NOTIFICATION_CB является пустой строкой, это означает, что переименование перемещает файл или папку из экземпляра виртуализации.
— Если параметры callbackData-FilePathName> и destinationFileName PRJ_NOTIFICATION_CB являются непустыми строками, это означает, что переименование находится в экземпляре виртуализации. Если поставщик указал разные маски уведомлений для пути к источнику и назначению в элементе NotificationMappings параметра параметров PrjStartVirtualizing, это уведомление будет отправлено, если поставщик указал этот бит при регистрации пути источника или назначения.
PRJ_NOTIFICATION_PRE_SET_HARDLINK
Значение: 0x00000040
— Для файла будет создана жесткая ссылка.
— Если поставщик возвращает код ошибки HRESULT из обратного вызова, операция жесткой связи не вступит в силу.
— Если параметр callbackData-FilePathName>PRJ_NOTIFICATION_CB является пустой строкой, это означает, что имя жесткой ссылки будет создано внутри экземпляра виртуализации, т. е. в экземпляре виртуализации создается новая жесткая связь с файлом, который существует за пределами экземпляра виртуализации. В этом случае это уведомление всегда будет отправляться, если поставщик зарегистрировал обратный вызов PRJ_NOTIFICATION_CB , даже если поставщик не указал этот бит при регистрации поддеревья, где будет находиться новое имя жесткой ссылки. Однако если указанный поставщик PRJ_NOTIFICATION_SUPPRESS_NOTIFICATIONS при регистрации поддеревья, содержащего целевой путь, уведомление будет подавлено.
— Если параметр destinationFileName PRJ_NOTIFICATION_CB является пустой строкой, это означает, что имя жесткой ссылки будет создано за пределами экземпляра виртуализации, т. е. за пределами экземпляра виртуализации создается новая жесткая ссылка для файла, существующего внутри экземпляра виртуализации.
— Если параметры callbackData-FilePathName> и destinationFileName PRJ_NOTIFICATION_CB являются непустой строкой, это означает, что в экземпляре виртуализации будет создана новая жесткая ссылка для файла, существующего в экземпляре виртуализации. Если поставщик указал разные маски уведомлений для пути к источнику и назначению в элементе NotificationMappings параметра параметров PrjStartVirtualizing, это уведомление будет отправлено, если поставщик указал этот бит при регистрации пути источника или назначения.
PRJ_NOTIFICATION_FILE_RENAMED
Значение: 0x00000080
— указывает, что файл или папка были переименованы. Возможно, файл или папка были перемещены в экземпляр виртуализации.
— Если параметр callbackData-FilePathName> PRJ_NOTIFICATION_CB является пустой строкой, это означает, что переименование переместит файл или каталог извне экземпляра виртуализации. В этом случае ProjFS всегда будет отправлять это уведомление, если поставщик зарегистрировал обратный вызов PRJ_NOTIFICATION_CB, даже если поставщик не указал этот бит при регистрации поддеревья, содержащего путь назначения.
— Если параметр destinationFileName PRJ_NOTIFICATION_CB является пустой строкой, это означает, что переименование переместит файл или каталог из экземпляра виртуализации.
— Если параметры callbackData-FilePathName> и destinationFileName PRJ_NOTIFICATION_CB являются непустой строкой, это означает, что переименование было выполнено в экземпляре виртуализации. Если поставщик указал разные маски уведомлений для пути к источнику и назначению в элементе NotificationMappings параметра параметров PrjStartVirtualizing, ProjFS отправит это уведомление, если поставщик указал этот бит при регистрации пути источника или назначения.
— Поставщик может указать новую маску уведомления для этого файла или каталога при ответе на уведомление.
PRJ_NOTIFICATION_HARDLINK_CREATED
Значение: 0x00000100
— указывает, что для файла создана жесткая ссылка.
— Если параметр callbackData-FilePathName> PRJ_NOTIFICATION_CB является пустой строкой, это означает, что имя жесткой связи было создано внутри экземпляра виртуализации, т. е. в экземпляре виртуализации была создана новая жесткая связь с файлом, который существует за пределами экземпляра виртуализации. В этом случае ProjFS всегда будет отправлять это уведомление, если поставщик зарегистрировал обратный вызов PRJ_NOTIFICATION_CB, даже если поставщик не указал этот бит при регистрации поддеревья, где будет новое имя жесткой ссылки.
— Если параметр destinationFileName PRJ_NOTIFICATION_CB является пустой строкой, это означает, что имя жесткой ссылки было создано за пределами экземпляра виртуализации, т. е. за пределами экземпляра виртуализации была создана новая жесткая ссылка для файла, существующего внутри экземпляра виртуализации.
— Если параметры callbackData-FilePathName> и destinationFileName PRJ_NOTIFICATION_CB представляют собой непустые строки, это означает, что в экземпляре виртуализации была создана новая жесткая ссылка для файла, существующего в экземпляре виртуализации. Если поставщик указал разные маски уведомлений для пути к источнику и назначению в элементе NotificationMappings параметра параметров PrjStartVirtualizing, 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, а файл был изменен с помощью дескриптора, закрытие которого привело к удалению файла, то параметр operationParameters-FileDeletedOnHandleClose.IsFileModified>PRJ_NOTIFICATION_CB будет иметь значение TRUE. Это относится только к файлам, а не к каталогам.
PRJ_NOTIFICATION_FILE_PRE_CONVERT_TO_FULL
Значение: 0x00001000
— Файл будет развернут из заполнителя до полного файла, т. е. его содержимое, скорее всего, будет изменено.
— Если поставщик возвращает код ошибки HRESULT из обратного вызова, файл не будет развернут до полного файла, а ввод-вывод, активировав преобразование, завершится ошибкой.
— При наличии нескольких гоночных операций ввода-вывода, расширяющих один и тот же файл, поставщик получит это значение уведомления только один раз.

Требования

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