次の方法で共有


PRJ_GET_FILE_DATA_CB コールバック関数 (projectedfslib.h)

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

構文

PRJ_GET_FILE_DATA_CB PrjGetFileDataCb;

HRESULT PrjGetFileDataCb(
  [in] const PRJ_CALLBACK_DATA *callbackData,
  [in] UINT64 byteOffset,
  [in] UINT32 length
)
{...}

パラメーター

[in] callbackData

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

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

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

[in] byteOffset

ファイルの先頭からの要求されたデータのオフセット (バイト単位)。 プロバイダーは、このオフセット以降または前のファイル データを返す必要があります

[in] length

要求されたファイル データのバイト数。 プロバイダーは、byteOffset で始まるこの数バイト以上のファイル データを返す必要があります。

戻り値

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

プロバイダーが操作に失敗した場合の適切な HRESULT エラー コード。

注釈

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

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

要件

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