次の方法で共有


IVssHardwareSnapshotProvider::GetTargetLuns メソッド (vsprov.h)

GetTarget Luns メソッドは、新しく作成されたシャドウ コピー LUN のVDS_LUN_INFORMATION構造体を初期化するようにハードウェア プロバイダーに求めます。 GetTargetLuns メソッドは、IVssProviderCreateSnapshotSet::P ostCommitSnapshots メソッドの後に呼び出されます。 新しく作成された各 LUN の識別情報は、VDS_LUN_INFORMATION構造体を介して VSS 返されます。

メモ ハードウェア プロバイダーは、Windows Server オペレーティング システムでのみサポートされます。
 

構文

HRESULT GetTargetLuns(
  [in]      LONG                lLunCount,
  [in]      VSS_PWSZ            *rgDeviceNames,
  [in]      VDS_LUN_INFORMATION *rgSourceLuns,
  [in, out] VDS_LUN_INFORMATION *rgDestinationLuns
);

パラメーター

[in] lLunCount

元のボリュームに寄与する LUN の数。

[in] rgDeviceNames

文字列への lLunCount ポインターの配列へのポインター。 各文字列には、シャドウ コピーする元の LUN の名前が含まれます。

[in] rgSourceLuns

元のボリュームに寄与する LUN ごとに 1 つずつ、 l LunCountVDS_LUN_INFORMATION 構造体の配列へのポインター。

[in, out] rgDestinationLuns

シャドウ コピーの処理中に作成された新しいシャドウ コピー LUN ごとに 1 つずつ、 l LunCountVDS_LUN_INFORMATION 構造体の配列へのポインター。 rgSourceLuns 配列と rgDestinationLuns 配列の要素の間には、1 対 1 の対応が必要です。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード/値 Description
S_OK
0x000000000L
操作が正常に完了しました。
E_OUTOFMEMORY
0x8007000EL
メモリ不足またはその他のシステム リソース。
E_INVALIDARG
0x80070057L
パラメーター値の 1 つが無効です。
VSS_E_PROVIDER_VETO
0x80042306L
予期しないプロバイダー エラーが発生しました。 プロバイダーは、問題を解決する方法に関する情報をユーザーに提供するアプリケーション イベント ログにイベントを報告する必要があります。

解説

rgDestination Luns パラメーターでは、VSS は新しく作成されたシャドウ コピー LUN ごとに空のVDS_LUN_INFORMATION構造を提供します。 シャドウ コピー LUN が表示されないか、システムに表示されません。 プロバイダーは、適切な SCSI 照会データと重要な製品データ ページ 80 (デバイスシリアル番号) とページ 83 (デバイス ID) 情報を使用して、 VDS_LUN_INFORMATION 構造体のメンバーを初期化する必要があります。 構造には、元のコンピューターまたは SAN に接続されている他のコンピューターから Windows によってシャドウ コピー LUN を配置できるように、正しいメンバー値が含まれている必要があります。

VDS_LUN_INFORMATION構造体のメンバーは、ページ 80 の情報に対応しますが、次の例外があります。

  • m_version メンバーは、VER_VDS_LUN_INFORMATIONに設定する必要があります。
  • インポート中の比較では、 m_BusType メンバーは無視されます。 この値は、対応するディスク デバイス上の PnP ストレージ スタックによって異なります。 通常、これは VDSBusTypeScsi です
  • インポート中の比較では、 m_diskSignature メンバーは無視されます。 プロバイダーは、このメンバーを GUID_NULL に設定する必要があります。
VDS_STORAGE_DEVICE_ID_DESCRIPTOR構造体のメンバー (VDS_LUN_INFORMATION構造体のm_deviceIdDescriptor メンバー内) は、ページ 83 の情報に対応します。 この構造体では、各 VDS_STORAGE_IDENTIFIER 構造体は、デバイス識別子 (つまり、関連付けの種類が 0 のストレージ識別子) のSTORAGE_IDENTIFIER構造体に対応します。 STORAGE_IDENTIFIER構造の詳細については、Windows Driver Kit (WDK) のドキュメントを参照してください。

ここで返される VDS_LUN_INFORMATION 構造体は、インポート時に IVssHardwareSnapshotProvider::FillIn LunInfo メソッドで提供される構造体と同じである必要があります。これにより、VSS はこの情報を使用して、インポート時に新しく到着するシャドウ コピー LUN を識別できます。 これらの同じ構造は、 IVssHardwareSnapshotProvider::LocateLuns メソッドのプロバイダーに渡されます。

要件

   
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー vsprov.h

関連項目

IVssHardwareSnapshotProvider

VDS_LUN_INFORMATION