Win32 API 日本語リファレンス
ホーム › Storage.ProjectedFileSystem › PRJ_NOTIFICATION_CB

PRJ_NOTIFICATION_CB

コールバック

シグネチャ

HRESULT PRJ_NOTIFICATION_CB(
    PRJ_CALLBACK_DATA* callbackData,
    BOOLEAN isDirectory,
    PRJ_NOTIFICATION notification,
    LPWSTR destinationFileName,
    PRJ_NOTIFICATION_PARAMETERS* operationParameters
);

パラメーター

フィールド型説明
callbackDataPRJ_CALLBACK_DATA*

操作に関する情報です。このコールバックを実装するには、次の callbackData のメンバーが必要です。

FilePathName 通知の対象となるファイルまたはディレクトリのパスを示します。

プロバイダーがこのバッファーにアクセスできるのは、コールバックの実行中だけです。操作を保留し、このバッファーのデータが必要な場合は、プロバイダー自身でコピーを作成する必要があります。

isDirectoryBOOLEANcallbackData の FilePathName フィールドがディレクトリを指す場合は TRUE、それ以外の場合は FALSE です。
notificationPRJ_NOTIFICATION通知を指定する PRJ_NOTIFICATION 値です。
destinationFileNameLPWSTRnotification が PRJ_NOTIFICATION_PRE_RENAME または PRJ_NOTIFICATION_PRE_SET_HARDLINK の場合、名前変更操作またはハードリンク設定操作の対象のパスを仮想化ルートからの相対パスで指定する、null 終端の Unicode 文字列へのポインターです。
operationParametersPRJ_NOTIFICATION_PARAMETERS*

PRJ_NOTIFICATION_PARAMETERS 共用体へのポインターで、notification が特定の値の場合に追加のパラメーターを指定します。

PRJ_NOTIFICATION_FILE_OPENED、PRJ_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_DELETED と併せて PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED にも登録していた場合、削除される前にファイルが変更されていたときは、このフィールドが TRUE に設定されます。

公式ドキュメント

ファイルシステム操作に関する通知をプロバイダーに配信します。

戻り値

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

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

解説(Remarks)

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

プロバイダーは、PrjStartVirtualizing を呼び出すときに、受け取りたい通知を登録します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)