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

PRJ_GET_FILE_DATA_CB

コールバック

シグネチャ

HRESULT PRJ_GET_FILE_DATA_CB(
    PRJ_CALLBACK_DATA* callbackData,
    ULONGLONG byteOffset,
    DWORD length
);

パラメーター

フィールド型説明
callbackDataPRJ_CALLBACK_DATA*

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

FilePathName データを返す必要があるファイルの、プロバイダーのバッキングストア内のパスを示します。これは、そのファイルのプレースホルダーが最初に作成されたときの名前を反映している点に注意してください。それ以降に名前が変更されている場合、FilePathName は現在の (名前変更後の) 名前ではなく、元の (名前変更前の) 名前を示します。
DataStreamIdこのファイルストリームに関連付ける一意の値。プロバイダーは、このコールバックの処理の一環としてファイルデータを提供する際に、この値を PrjWriteFileData の dataStreamId パラメーターに渡す必要があります。
VersionInfo プロバイダーがこのファイルのプレースホルダーを作成したときに指定した PRJ_PLACEHOLDER_VERSION_INFO の情報を提供します。これは、ファイル内容のどのバージョンを返すべきかを判断する際に役立つ場合があります。また、ファイルの名前が変更されており、プロバイダーが名前変更を追跡している場合は、どのファイルの内容が要求されているかを判断するのにも役立ちます。

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

byteOffsetULONGLONG要求されたデータの、ファイルの先頭からのオフセット (バイト単位)。プロバイダーは、このオフセット以前の位置から始まるファイルデータを返す必要があります
lengthDWORD要求されたファイルデータのバイト数。プロバイダーは、byteOffset から始まる、少なくともこのバイト数のファイルデータを返す必要があります。

公式ドキュメント

ファイルのプライマリデータストリームの内容を要求します。

戻り値

リターンコード 説明
S_OK
プロバイダーは、要求されたすべてのデータを正常に返しました。
HRESULT_FROM_WIN32(ERROR_IO_PENDING)
プロバイダーは、この操作を後で完了することを希望しています。

プロバイダーが操作を失敗させる場合は、適切な HRESULT エラーコード。

解説(Remarks)

ProjFS はデータを受け取ると、それをファイルに書き込み、ハイドレートされたプレースホルダーに変換します。

このコールバックを処理するには、プロバイダーは PrjWriteFileData を 1 回以上呼び出して、要求されたファイルのプライマリデータストリームの内容を ProjFS に渡します。その後、プロバイダーはコールバックを完了します。

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