次の方法で共有


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

callbackDataFilePathName フィールドがディレクトリを参照している場合は TRUE、それ以外の場合は FALSE。

[in] notification

通知を指定する PRJ_NOTIFICATION 値。

[in, optional] destinationFileName

通知PRJ_NOTIFICATION_PRE_RENAMEまたはPRJ_NOTIFICATION_PRE_SET_HARDLINKの場合、これは、名前変更操作または set-hardlink 操作のターゲットの仮想化ルートに対する相対パスを指定する null で終わる Unicode 文字列を指します。

[in, out] operationParameters

通知の特定の値に対して追加のパラメーターを指定する、PRJ_NOTIFICATION_PARAMETERS共用体へのポインター。

PRJ_NOTIFICATION_FILE_OPENEDPRJ_NOTIFICATION_NEW_FILE_CREATED、または PRJ_NOTIFICATION_FILE_OVERWRITTEN

PostCreate メンバーのフィールドを指定します。 以下のフィールドが対象です。

NotificationMask

PRJ_NOTIFICATION_CBコールバックから戻ると、プロバイダーはファイルに対して受信する新しい通知セットをここで指定できます。

プロバイダーがこの値を 0 に設定する場合は、 PRJ_NOTIFY_USE_EXISTING_MASKを指定することと同じです。

PRJ_NOTIFICATION_FILE_RENAMED

FileRenamed メンバーのフィールドを指定します。 以下のフィールドが対象です。

NotificationMask

PRJ_NOTIFICATION_CBコールバックから戻ると、プロバイダーはファイルに対して受信する新しい通知セットをここで指定できます。

プロバイダーがこの値を 0 に設定する場合は、 PRJ_NOTIFY_USE_EXISTING_MASKを指定することと同じです。

PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED

  • FileDeletedOnHandleClose メンバーのフィールドを指定します。 以下のフィールドが対象です。

    NotificationMask

    プロバイダーが PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIEDPRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETEDに登録されている場合、ファイルが削除される前に変更された場合、このフィールドは TRUE に設定されます。

戻り値

リターン コード 説明
S_OK
プロバイダーが通知を正常に処理しました。
HRESULT_FROM_WIN32(ERROR_IO_PENDING)
プロバイダーは、後で操作を完了することを望みます。
 

プロバイダーが操作に失敗した場合の適切な HRESULT エラー コード。 操作前の通知 (名前に "PRE" を含む操作) の場合、プロバイダーからエラー コードが返された場合、ProjFS は、指定されたエラー コードを含む対応する操作に失敗します。

注釈

このコールバックは省略可能です。 プロバイダーがこのコールバックの実装を提供しない場合、通知は受信されません。

プロバイダーは 、PrjStartVirtualizing を呼び出すときに受信する通知に登録します。

要件

要件
サポートされている最小のクライアント Windows 10 Version 1809 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー projectedfslib.h