파일 또는 폴더의 변경 사항을 설명하는 알림 유형입니다.
Syntax
typedef enum PRJ_NOTIFY_TYPES {
PRJ_NOTIFY_NONE = 0x00000000,
PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS = 0x00000001,
PRJ_NOTIFY_FILE_OPENED = 0x00000002,
PRJ_NOTIFY_NEW_FILE_CREATED = 0x00000004,
PRJ_NOTIFY_FILE_OVERWRITTEN = 0x00000008,
PRJ_NOTIFY_PRE_DELETE = 0x00000010,
PRJ_NOTIFY_PRE_RENAME = 0x00000020,
PRJ_NOTIFY_PRE_SET_HARDLINK = 0x00000040,
PRJ_NOTIFY_FILE_RENAMED = 0x00000080,
PRJ_NOTIFY_HARDLINK_CREATED = 0x00000100,
PRJ_NOTIFY_FILE_HANDLE_CLOSED_NO_MODIFICATION = 0x00000200,
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED = 0x00000400,
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED = 0x00000800,
PRJ_NOTIFY_FILE_PRE_CONVERT_TO_FULL = 0x00001000,
PRJ_NOTIFY_USE_EXISTING_MASK = 0xFFFFFFFF
} ;
상수
PRJ_NOTIFY_NONE값: 0x00000000 알림이 없습니다. |
PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS값: 0x00000001 가상화 instance 시작에 지정된 경우: - 가상화 instance 또는 instance 지정된 하위 트리에 대한 알림을 전송해서는 안 됨을 나타냅니다. 알림에 대한 응답으로 지정된 경우: - 지정된 파일 또는 폴더에 대한 모든 핸들이 닫혀 있을 때까지 알림을 보내서는 안 됨을 나타냅니다.
참고 이 비트가 알림 마스크에 표시되면 마스크의 다른 모든 비트를 재정의합니다. 예를 들어 이 비트가 있는 유효한 마스크는 PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS 포함하는 것으로 처리됩니다. |
PRJ_NOTIFY_FILE_OPENED값: 0x00000002 가상화 instance 시작에 지정된 경우: - 기존 파일 또는 폴더에 핸들을 만들 때 공급자에게 알림을 받아야 했음을 나타냅니다. 알림에 대한 응답으로 지정된 경우: - 파일 또는 폴더에 대한 추가 핸들이 만들어지면 공급자에게 알림을 받아야 했음을 나타냅니다. |
PRJ_NOTIFY_NEW_FILE_CREATED값: 0x00000004 가상화 instance 시작에 지정된 경우: - 새 파일 또는 폴더를 만들 때 공급자에게 알림을 보내야 합니다. 알림에 대한 응답으로 지정된 경우: - 효과가 없습니다. |
PRJ_NOTIFY_FILE_OVERWRITTEN값: 0x00000008 가상화 instance 시작에 지정된 경우: - 기존 파일을 덮어쓰거나 교체할 때 기존 파일을 사용할 때 공급자에게 알림을 받아야 했음을 나타냅니다. 알림에 대한 응답으로 지정된 경우: - 파일 또는 폴더를 덮어쓰거나 대체하면 공급자에게 알림을 받아야 했음을 나타냅니다. |
PRJ_NOTIFY_PRE_DELETE값: 0x00000010 가상화 instance 시작에 지정된 경우: - 파일 또는 폴더를 삭제하려고 할 때 공급자에게 알림을 받아야 했음을 나타냅니다. 알림에 대한 응답으로 지정된 경우: - 파일 또는 폴더를 삭제하려고 할 때 공급자에게 알림을 받아야 했음을 나타냅니다. |
PRJ_NOTIFY_PRE_RENAME값: 0x00000020 가상화 instance 시작에 지정된 경우: - 파일 또는 폴더의 이름을 바꿀 때 공급자에게 알림을 받아야 했음을 나타냅니다. 알림에 대한 응답으로 지정된 경우: - 파일 또는 폴더의 이름을 바꿀 때 공급자에게 알림을 받아야 했음을 나타냅니다. |
PRJ_NOTIFY_PRE_SET_HARDLINK값: 0x00000040 가상화 instance 시작에 지정된 경우: - 파일에 대한 하드 링크를 만들려는 경우 공급자에게 알림을 받아야 했음을 나타냅니다. 알림에 대한 응답으로 지정된 경우: - 파일에 대한 하드 링크를 만들려는 경우 공급자에게 알림을 받아야 했음을 나타냅니다. |
PRJ_NOTIFY_FILE_RENAMED값: 0x00000080 가상화 instance 시작에 지정된 경우: - 공급자에게 파일 또는 폴더의 이름이 변경되었다는 알림을 받아야 했음을 나타냅니다. 알림에 대한 응답으로 지정된 경우: - 파일 또는 폴더의 이름을 바꿀 때 공급자에게 알림을 받아야 했음을 나타냅니다. |
PRJ_NOTIFY_HARDLINK_CREATED값: 0x00000100 가상화 instance 시작에 지정된 경우: - 파일에 대한 하드 링크가 생성되었음을 공급자에게 알려야 임을 나타냅니다. 알림에 대한 응답으로 지정된 경우: - 파일에 대한 하드 링크가 생성되었음을 공급자에게 알려야 임을 나타냅니다. |
PRJ_NOTIFY_FILE_HANDLE_CLOSED_NO_MODIFICATION값: 0x00000200 가상화 instance 시작에 지정된 경우: - 파일/폴더에서 핸들이 닫히고 닫는 핸들이 수정되거나 삭제되지 않은 경우 공급자에게 알림을 받아야 합니다. 알림에 대한 응답으로 지정된 경우: - 파일/폴더에 대한 핸들이 닫혀 있고 닫는 핸들과 관련된 수정 또는 삭제가 없는 경우 공급자에게 알림을 받아야 합니다. |
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED값: 0x00000400 가상화 instance 시작에 지정된 경우: - 파일/폴더에서 핸들이 닫히고 닫는 핸들을 사용하여 수정할 때 공급자에게 알림을 보내야 합니다. 알림에 대한 응답으로 지정된 경우: - 파일/폴더에서 핸들이 닫히고 닫는 핸들을 사용하여 수정할 때 공급자에게 알림을 보내야 합니다. |
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED값: 0x00000800 가상화 instance 시작에 지정된 경우: - 파일/폴더에서 핸들이 닫히고 핸들을 닫을 때 삭제될 때 공급자에게 알림을 받아야 합니다. 알림에 대한 응답으로 지정된 경우: - 파일/폴더에서 핸들이 닫히고 핸들을 닫을 때 삭제될 때 공급자에게 알림을 받아야 합니다. |
PRJ_NOTIFY_FILE_PRE_CONVERT_TO_FULL값: 0x00001000 가상화 instance 시작에 지정된 경우: - 자리 표시자를 전체 파일로 변환하려고 할 때 공급자에게 알림을 보내야 합니다. 알림에 대한 응답으로 지정된 경우: - 자리 표시자를 전체 파일로 변환하려고 할 때 공급자가 자리 표시자이며 아직 전체 파일이 아니라고 가정할 때 알림을 받아야 합니다. |
PRJ_NOTIFY_USE_EXISTING_MASK값: 0xFFFFFFFF 가상화 instance 시작에 지정된 경우: - 이 값은 가상화 시작 instance 유효하지 않습니다. 알림에 대한 응답으로 지정된 경우: - 이 파일/폴더에 대한 기존 알림 집합을 계속 사용합니다. |
설명
ProjFS는 파일 시스템 활동에 대한 알림을 공급자에게 보낼 수 있습니다. 공급자가 instance 가상화를 시작하면 수신하려는 알림을 지정합니다. 파일을 만들거나 이름을 바꿀 때 파일에 대한 새 알림 집합을 지정할 수도 있습니다. 공급자는 알림을 받으려면 PrjStartVirtualizing의 콜백 매개 변수에 PRJ_NOTIFICATION_CB 알림 콜백 루틴을 등록해야 합니다.
ProjFS는 활성 가상화 루트 내의 파일 및 디렉터리에 대한 알림을 보냅니다. 즉, ProjFS는 가상화 루트 및 해당 하위 항목에 대한 알림을 보냅니다. 가상화 루트 내의 바로 가기 링크와 접합은 가상화 루트의 하위 항목을 구성하는 항목을 결정할 때 트래버스되지 않습니다.
ProjFS는 파일의 기본 데이터 스트림에 대해서만 알림을 보냅니다. ProjFS는 대체 데이터 스트림에 대한 작업에 대한 알림을 보내지 않습니다.
ProjFS는 비활성 가상화 instance 대한 알림을 보내지 않습니다. 다음 중 하나가 true인 경우 가상화 instance 비활성 상태입니다.
- 공급자가 PrjStartVirtualizing을 호출하여 아직 시작하지 않았습니다.
- 공급자가 PrjStopVirtualizing을 호출하여 instance 중지했습니다.
- 공급자 프로세스가 종료되었습니다.
공급자는 가상화 instance 시작할 때 수신하려는 알림을 지정하거나 새 알림 마스크를 설정할 수 있는 알림에 대한 응답으로 지정할 수 있습니다.
공급자는 Instance 시작할 때 ProjFS가 가상화 instance 보낼 기본 알림 집합을 지정합니다. 이 알림 집합은 PrjStartVirtualizing의 options 매개 변수의 NotificationMappings 멤버에 제공되며, 가상화 instance 다른 하위 트리에 대해 다른 알림 마스크를 지정할 수 있습니다.
공급자는 파일 열기, 만들기, 대체/덮어쓰기 또는 이름 바꾸기 알림에 대한 응답으로 다른 알림 마스크를 제공할 수 있습니다. ProjFS는 파일에 대한 모든 핸들이 닫히기 전까지 지정된 파일에 대해 이러한 알림을 계속 보냅니다. 그 후에는 기본 알림 집합으로 되돌리기. 기본적으로 기본 알림 집합에서 ProjFS가 열기, 만들기 등에 대해 알리도록 지정하지 않으면 공급자는 해당 작업에 대해 다른 마스크를 지정할 기회를 얻지 못합니다.
요구 사항
| 요구 사항 | 값 |
|---|---|
| 지원되는 최소 클라이언트 | Windows 10, 버전 1809[데스크톱 앱만 해당] |
| 지원되는 최소 서버 | Windows Server [데스크톱 앱만 해당] |
| 머리글 | projectedfslib.h |