VDS_HINTS構造体 (vdshwprv.h)

[Windows 8とWindows Server 2012以降、仮想ディスク サービス COM インターフェイスは Windows Storage Management API に置き換えられます。

LUN または LUN プレックスの自動マジック ヒントを定義します。

構文

typedef struct _VDS_HINTS {
  ULONGLONG ullHintMask;
  ULONGLONG ullExpectedMaximumSize;
  ULONG     ulOptimalReadSize;
  ULONG     ulOptimalReadAlignment;
  ULONG     ulOptimalWriteSize;
  ULONG     ulOptimalWriteAlignment;
  ULONG     ulMaximumDriveCount;
  ULONG     ulStripeSize;
  BOOL      bFastCrashRecoveryRequired;
  BOOL      bMostlyReads;
  BOOL      bOptimizeForSequentialReads;
  BOOL      bOptimizeForSequentialWrites;
  BOOL      bRemapEnabled;
  BOOL      bReadBackVerifyEnabled;
  BOOL      bWriteThroughCachingEnabled;
  BOOL      bHardwareChecksumEnabled;
  BOOL      bIsYankable;
  SHORT     sRebuildPriority;
} VDS_HINTS, *PVDS_HINTS;

メンバー

ullHintMask

LUN ヒント マスク。 この構造体の各 BOOL メンバーには、マスクで設定できる対応するヒント フラグがあります。 ヒント フラグが設定されている場合、対応するヒントが考慮されます。 ヒント フラグが設定されていない場合、ヒントは無視されます。 ヒント フラグについては、次の表で説明します。

意味
VDS_HINT_FASTCRASHRECOVERYREQUIRED
0x00000000000000001L
プロバイダーは、回復に必要な時間を制限します。 高速復旧をサポートするために、プロバイダーは変更ログを使用します。これにより、プロバイダーは LUN の内容全体を比較せずに LUN を回復できます。
VDS_HINT_MOSTLYREADS
0x00000000000000002L
プロバイダーは、通常、パリティ ストライピングではなくミラーリングを使用して、読み取り主の使用パターンに対して LUN を最適化します。
VDS_HINT_OPTIMIZEFORSEQUENTIALREADS
0x0000000000000004L
プロバイダーは、シーケンシャル読み取り使用パターンに合わせて LUN を最適化します。 このフラグが設定されておらず、VDS_HINT_OPTIMIZEFORSEQUENTIALWRITESも設定されていない場合、LUN はランダム I/O 用に最適化されます。
VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES
0x00000000000000008L
プロバイダーは、連続書き込みの使用パターンに合わせて LUN を最適化します。 このフラグが設定されておらず、VDS_HINT_OPTIMIZEFORSEQUENTIALREADSも設定されていない場合、LUN はランダム I/O 用に最適化されます。
VDS_HINT_READBACKVERIFYENABLED
0x00000000000000010L
プロバイダーは、読み取りバックを使用して LUN への書き込みを検証します。
VDS_HINT_REMAPENABLED
0x000000000000000020L
LUN エクステントとドライブ エクステントのマッピングは、プロバイダーによって自動的に作成および更新されます。 このフラグが設定されていない場合、ドライブの障害を回避するためにプロアクティブなアクションが実行される場合を除き、マッピングは構成後も固定されたままになります。
VDS_HINT_WRITETHROUGHCACHINGENABLED
0x00000000000000040L
プロバイダーは、LUN の書き込みキャッシュ ポリシーを有効にします。
VDS_HINT_HARDWARECHECKSUMENABLED
0x00000000000000080L
プロバイダーは、LUN でハードウェア チェックサムを有効にします。
VDS_HINT_ISYANKABLE
0x00000000000000100L
プロバイダーは LUN を構成して、それに寄与するドライブを最小限のシステム中断で物理的に削除できるようにします。 これは通常、LUN ができるだけ少ないドライブを占有するようにすることで実現されます。

ullExpectedMaximumSize

LUN の拡大が予想される最大サイズ (バイト単位)。 この値は、IVdsSubSystem::CreateLun メソッドが呼び出されたときに、ullSizeInBytes で指定された値と等しいか、より大きいか、より小さい値にすることができます。 一部のプロバイダーでは、この値を使用して LUN の領域を予約します。 通常、領域を予約できないプロバイダーは、このパラメーターを無視します。

ulOptimalReadSize

LUN の最適な読み取りサイズ (バイト単位)。 ゼロは、最適な読み取りサイズがないことを示します。

ulOptimalReadAlignment

LUN の最初の論理ブロックに対する最適な読み取りアラインメント。 ゼロは、最適な読み取りアラインメントがないことを示します。

ulOptimalWriteSize

LUN の最適な書き込みサイズ (バイト単位)。 ゼロは、最適な書き込みサイズがないことを示します。

ulOptimalWriteAlignment

LUN の最初の論理ブロックに対する最適な書き込みアラインメント。 ゼロは、最適な書き込み配置がないことを示します。

ulMaximumDriveCount

LUN に寄与するドライブの最大数。 0 は、ドライブの最大数がないことを示します。 この値を使用して、ストライプ セット内のストライプ インターリーブの数を制限できます。

ulStripeSize

ミラーまたはパリティ ストライプ インターリーブ サイズ (バイト単位)。 0 の場合、ストライプ サイズは指定されません。

bFastCrashRecoveryRequired

このメンバーが TRUE の場合、回復時間は制限されます。 ullHintMask メンバーのVDS_HINT_FASTCRASHRECOVERYREQUIRED フラグを設定して、このメンバーに関心があることを示します。

bMostlyReads

ほとんどの読み取り使用パターン (パリティ ストライピングではなくミラーリングなど) に合わせて最適化するには、このメンバーを TRUE に設定します。 それ以外の場合は、 FALSE に設定します。 ullHintMask メンバーのVDS_HINT_MOSTLYREADS フラグを設定して、このメンバーに関心があることを示します。

bOptimizeForSequentialReads

シーケンシャル読み取りの使用パターンを最適化するには、このメンバーを TRUE に設定 します。 それ以外の場合は、 FALSE に設定します。 bOptimizeForSequentialReads メンバーと bOptimizeForSequentialWrites メンバーの両方を FALSE に設定すると、ランダム I/O 用に最適化されます。 ullHintMask メンバーのVDS_HINT_OPTIMIZEFORSEQUENTIALREADS フラグを設定して、このメンバーに関心があることを示します。

bOptimizeForSequentialWrites

シーケンシャル書き込みの使用パターンを最適化するには、このメンバーを TRUE に設定します。 それ以外の場合は、 FALSE に設定します。 bOptimizeForSequentialReads メンバーと bOptimizeForSequentialWrites メンバーの両方を FALSE に設定すると、ランダム I/O 用に最適化されます。 ullHintMask メンバーのVDS_HINT_OPTIMIZEFORSEQUENTIALWRITES フラグを設定して、このメンバーに関心があることを示します。

bRemapEnabled

このメンバーが TRUE の場合、プロバイダーは LUN エクステントを再マップしてエクステントを自動的に駆動します。 FALSE の場合、LUN エクステントからドライブ エクステントへのマッピングは、ブロックが破損しないようにエクステントが明示的に再マップされない限り、LUN 構成後も固定されたままになります。 ullHintMask メンバーのVDS_HINT_REMAPENABLED フラグを設定して、このメンバーに関心があることを示します。

bReadBackVerifyEnabled

このメンバーが TRUE に設定されている場合、プロバイダーは読み取りバックによって LUN への書き込みを検証します。 FALSE に設定されている場合、プロバイダーは書き込みを検証しません。 ullHintMask メンバーのVDS_HINT_READBACKVERIFYENABLED フラグを設定して、このメンバーに関心があることを示します。

bWriteThroughCachingEnabled

このメンバーが TRUE の場合、プロバイダーは LUN での書き込みキャッシュを有効にします。 FALSE の場合、プロバイダーはライトスルー キャッシュを有効にしません。 ullHintMask メンバーのVDS_HINT_WRITETHROUGHCACHINGENABLED フラグを設定して、このメンバーに関心があることを示します。

bHardwareChecksumEnabled

このメンバーが TRUE の場合、プロバイダーは LUN のチェックサムを有効にします。 ullHintMask メンバーのVDS_HINT_HARDWARECHECKSUMENABLED フラグを設定して、このメンバーに関心があることを示します。

bIsYankable

このメンバーが TRUE の場合、LUN に寄与するドライブは、システムを大幅に中断することなく物理的に削除できます (これは通常、LUN が少数のドライブからのエクステントで構成されている場合に当てはまります)。 FALSE の場合、システムを大幅に中断しないと LUN を削除できません。 ullHintMask メンバーのVDS_HINT_ISYANKABLE フラグを設定して、このメンバーに関心があることを示します。

sRebuildPriority

LUN の再構築の優先順位。 この値の範囲は、0 (最も低い優先度) から 15 (最も高い優先度) です。

注釈

IVdsSubSystem::Create Lun メソッドは、LUN を作成するためのヒントを提供するために、この構造体をパラメーターとして渡します。 それぞれ、新しいヒントセットを LUN または LUN plex に適用するために、IVds Lun インターフェイスと IVds LunPlex インターフェイスの両方で ApplyHints メソッドのパラメーターとして渡されます。 さらに、IVds Lun インターフェイスと IVds LunPlex インターフェイスの両方で QueryHints メソッドによって返され、LUN または LUN プレックスに現在適用されているヒントを報告します。

ヒントは実装者へのディレクティブではありません。 実装者は一般的にヒントを考慮に入れて最善を尽くす必要があるが、それに従う義務はない。 実装者は、技術的な理由で指定されたヒントに従うことができない場合、またはそれらに従うと、構成が悪くなる可能性がある場合に、代替手段を選択できます。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header vdshwprv.h

こちらもご覧ください

IVdsLun::ApplyHints

IVdsLun::QueryHints

IVdsLunPlex::ApplyHints

IVdsLunPlex::QueryHints

IVdsSubSystem::CreateLun

VDS 構造体