PRJ_NOTIFY_TYPES列挙 (projectedfslib.h)
ファイルまたはフォルダーへの変更を説明する通知の種類。
構文
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 仮想化インスタンスの開始時に指定した場合: - これは、仮想化インスタンスまたはインスタンスの指定されたサブツリーに対して通知を送信しないことを示します。 通知に応答して指定した場合: - 指定したファイルまたはフォルダーに対する通知は、そのファイルへのすべてのハンドルが閉じられるまで送信しないことを示します。 メモ このビットが通知マスクに表示される場合は、マスク内の他のすべてのビットがオーバーライドされます。 たとえば、このビットを持つ有効なマスクは、PRJ_NOTIFY_SUPPRESS_NOTIFICATIONSのみを含むものとして扱われます。 |
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 仮想化インスタンスの開始時に指定した場合: - この値は、仮想化インスタンスの起動時には無効です。 通知に応答して指定した場合: - このファイル/フォルダーの既存の通知セットを引き続き使用します。 |
注釈
ProjFS は、ファイル システム アクティビティの通知をプロバイダーに送信できます。 プロバイダーが仮想化インスタンスを起動すると、受け取る通知を指定します。 また、ファイルの作成時または名前変更時に、新しい通知セットを指定することもできます。 プロバイダーは、通知を受信するために、PrjStartVirtualizing の callbacks パラメーターにPRJ_NOTIFICATION_CB通知コールバック ルーチンを登録する必要があります。
ProjFS は、アクティブな仮想化ルート内のファイルとディレクトリに関する通知を送信します。 つまり、ProjFS は仮想化ルートとその子孫に関する通知を送信します。 仮想化ルート内のシンボリック リンクとジャンクションは、仮想化ルートの子孫を構成するものを決定するときに走査されません。
ProjFS は、ファイルのプライマリ データ ストリームに対してのみ通知を送信します。 ProjFS では、代替データ ストリームに対する操作に関する通知は送信されません。
ProjFS は、非アクティブな仮想化インスタンスの通知を送信しません。 仮想化インスタンスは、次のいずれかに該当する場合は非アクティブです。
- プロバイダーは、 PrjStartVirtualizing を呼び出してまだ起動していません。
- プロバイダーは 、PrjStopVirtualizing を呼び出してインスタンスを停止しました。
- プロバイダー プロセスが終了しました
プロバイダーは、仮想化インスタンスを開始するとき、または新しい通知マスクを設定できる通知に応答して、受信する通知を指定できます。
プロバイダーは、インスタンスの起動時に ProjFS が仮想化インスタンスに対して送信する通知の既定のセットを指定します。 この一連の通知は、 PrjStartVirtualizing の options パラメーターの NotificationMappings メンバーで提供されます。これにより、仮想化インスタンスのサブツリーごとに異なる通知マスクを指定できます。
プロバイダーは、ファイルを開く、作成する、置き換える/上書きする、または名前を変更する通知に応じて、別の通知マスクを指定することを選択できます。 ProjFS は、ファイルへのすべてのハンドルが閉じられるまで、指定されたファイルに対して引き続きこれらの通知を送信します。 その後、通知の既定のセットに戻ります。 通常、既定の通知セットで、ProjFS が開く、作成するなどの通知を行う必要があることを指定しない場合、プロバイダーはそれらの操作に別のマスクを指定する機会を得ません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 Version 1809 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server [デスクトップ アプリのみ] |
Header | projectedfslib.h |