IPreviousVersionsInfo::AreSnapshotsAvailable メソッド (shobjidl.h)

システムによって以前に記録された Windows Server 2003 ボリューム イメージの可用性を照会します。

構文

HRESULT AreSnapshotsAvailable(
  [in]  LPCWSTR pszPath,
  [in]  BOOL    fOkToBeSlow,
  [out] BOOL    *pfAvailable
);

パラメーター

[in] pszPath

種類: LPCWSTR

対象のボリューム上のファイルまたはフォルダーへの完全修飾パスを含む null で終わる Unicode 文字列。

メモ 現在、Windows Server 2003 ボリュームに格納されているファイルとフォルダーへのパスのみがサポートされています。
 

[in] fOkToBeSlow

種類: BOOL

格納されているボリューム イメージの可用性を判断するためにサーバーに接続するかどうかを指定するブール値。 詳細については、「解説」セクションを参照してください。

TRUE

結果がまだキャッシュされていない場合は、サーバーに問い合わせてください。

FALSE

サーバーに接続しないでください。 代わりにキャッシュされた結果を使用してください。

[out] pfAvailable

種類: BOOL*

結果を含むブール変数へのポインター。 この値は、メソッド呼び出しが成功した場合にのみ有効です。それ以外の場合は未定義です。

TRUE

pszPath にという名前のファイルまたはフォルダーが存在するボリュームの少なくとも 1 つの保存されたイメージを使用できます。

FALSE

ボリューム イメージは保存されません。

戻り値

型: HRESULT

次のような標準エラー値を返しますが、これらに限定されません。

リターン コード 説明
S_OK
正常終了しました。
E_PENDING
fOkToBeSlowFALSE で、結果は現在キャッシュされていません。

解説

ファイルまたはフォルダーで IPreviousVersionsInfo::AreSnapshotsAvailable が呼び出された場合、その結果は、ボリューム全体のスナップショットを使用できるだけでなく、その特定のファイルまたはフォルダーに対してロールバック情報が使用可能であることを示すものではありません。 この結果はキャッシュされ、その同じボリュームに格納されているものに関する後続の呼び出しは、サーバーを再問い合わせする代わりに、キャッシュされた結果にアクセスします。パフォーマンスのオーバーヘッドはほとんどありません。

サーバーの応答がメモリにキャッシュされると、 fOkToBeSlowTRUE であっても、後続の呼び出しはサーバーに接続しません。 fOkToBeSlowFALSE で、サーバーの応答がまだ前の呼び出しからキャッシュされていない場合、メソッドは E_PENDINGを返します。 その場合は、 fOkToBeSlowTRUE に設定し、 IPreviousVersionsInfo::AreSnapshotsAvailable をもう一度呼び出してサーバーに接続します。

パフォーマンスを向上させるには、このメソッドを呼び出す UI スレッドで常に fOkToBeSlowFALSE に設定する必要があります。 メソッドがE_PENDINGを返す場合は、次の手順に従います。

  • バックグラウンド スレッドに IPreviousVersionsInfo の別のインスタンスを作成します。
  • fOkToBeSlowTRUE に設定して IPreviousVersionsInfo::AreSnapshotsAvailable を呼び出します。
  • 元の UI スレッドに IPreviousVersionsInfo::AreSnapshotsAvailable を再度呼び出すように通知します。 その後、結果がキャッシュからプルされます。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー shobjidl.h
[DLL] Twext.dll (バージョン 5.2 以降)