VDS_HINTS2構造体 (vds.h)

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

記憶域プール内の LUN の自動マジック ヒントが含まれています。

構文

typedef struct _VDS_HINTS2 {
  ULONGLONG            ullHintMask;
  ULONGLONG            ullExpectedMaximumSize;
  ULONG                ulOptimalReadSize;
  ULONG                ulOptimalReadAlignment;
  ULONG                ulOptimalWriteSize;
  ULONG                ulOptimalWriteAlignment;
  ULONG                ulMaximumDriveCount;
  ULONG                ulStripeSize;
  ULONG                ulReserved1;
  ULONG                ulReserved2;
  ULONG                ulReserved3;
  BOOL                 bFastCrashRecoveryRequired;
  BOOL                 bMostlyReads;
  BOOL                 bOptimizeForSequentialReads;
  BOOL                 bOptimizeForSequentialWrites;
  BOOL                 bRemapEnabled;
  BOOL                 bReadBackVerifyEnabled;
  BOOL                 bWriteThroughCachingEnabled;
  BOOL                 bHardwareChecksumEnabled;
  BOOL                 bIsYankable;
  BOOL                 bAllocateHotSpare;
  BOOL                 bUseMirroredCache;
  BOOL                 bReadCachingEnabled;
  BOOL                 bWriteCachingEnabled;
  BOOL                 bMediaScanEnabled;
  BOOL                 bConsistencyCheckEnabled;
  VDS_STORAGE_BUS_TYPE BusType;
  BOOL                 bReserved1;
  BOOL                 bReserved2;
  BOOL                 bReserved3;
  SHORT                sRebuildPriority;
} VDS_HINTS2, *PVDS_HINTS2;

メンバー

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 ができるだけ少ないドライブを占有するようにすることで実現されます。
VDS_HINT_ALLOCATEHOTSPARE
0x000000000000000200L
プロバイダーは LUN にホット スペアを割り当てます。 詳細については、「 ホット スペーリングVDS_DRIVE_FLAG、VDS_DISK_FLAG」を参照 してください
VDS_HINT_BUSTYPE
0x00000000000000400L
プロバイダーは、LUN で指定されたバスの種類を使用します。 詳細については、「 VDS_STORAGE_BUS_TYPE」を参照してください。
VDS_HINT_USEMIRROREDCACHE
0x00000000000000800L
プロバイダーは LUN 上のミラー化されたキャッシュを使用します。 VDS_SUB_SYSTEM_FLAG列挙のVDS_SF_SUPPORTS_MIRRORED_CACHE値を参照してください。
VDS_HINT_READCACHINGENABLED
0x0000000000001000L
プロバイダーは、LUN で読み取りキャッシュを有効にします。 VDS_LUN_FLAG列挙のVDS_LF_READ_CACHE_ENABLED値と、VDS_SUB_SYSTEM_FLAG列挙のVDS_SF_READ_CACHING_CAPABLE値を確認します。
VDS_HINT_WRITECACHINGENABLED
0x00000000000002000L
プロバイダーは LUN で書き込みキャッシュを有効にします。 VDS_LUN_FLAG列挙のVDS_LF_WRITE_CACHE_ENABLED値と、VDS_SUB_SYSTEM_FLAG列挙のVDS_SF_WRITE_CACHING_CAPABLE値を確認します。
VDS_HINT_MEDIASCANENABLED
0x0000000000004000L
プロバイダーは、LUN でメディア スキャンを有効にします。 VDS_LUN_FLAG列挙のVDS_LF_MEDIA_SCAN_ENABLED値と、VDS_SUB_SYSTEM_FLAG列挙のVDS_SF_MEDIA_SCAN_CAPABLE値を確認します。
VDS_HINT_CONSISTENCYCHECKENABLED
0x00000000000008000L
プロバイダーは、LUN の整合性チェックを有効にします。 VDS_LUN_FLAG列挙のVDS_LF_CONSISTENCY_CHECK_ENABLED値と、VDS_SUB_SYSTEM_FLAG列挙のVDS_SF_CONSISTENCY_CHECK_CAPABLE値を参照してください。

ullExpectedMaximumSize

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

ulOptimalReadSize

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

ulOptimalReadAlignment

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

ulOptimalWriteSize

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

ulOptimalWriteAlignment

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

ulMaximumDriveCount

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

ulStripeSize

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

ulReserved1

このメンバーは将来使用するために予約されています。 使用しないでください。

ulReserved2

このメンバーは将来使用するために予約されています。 使用しないでください。

ulReserved3

このメンバーは将来使用するために予約されています。 使用しないでください。

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 フラグを設定して、このメンバーの関心を示します。

bAllocateHotSpare

クライアントがこの LUN にホット スペア ドライブを割り当てる場合は TRUE、それ以外の場合は FALSEullHintMask メンバーのVDS_HINT_ALLOCATEHOTSPARE フラグを設定して、このメンバーの関心を示します。

bUseMirroredCache

クライアントがこの LUN でミラー化キャッシュを使用する場合は TRUE、それ以外の場合は FALSEullHintMask メンバーのVDS_HINT_USEMIRROREDCACHE フラグを設定して、このメンバーの関心を示します。

bReadCachingEnabled

クライアントが LUN で読み取りキャッシュを使用する場合は TRUE、それ以外の場合は FALSEullHintMask メンバーのVDS_HINT_READCACHINGENABLED フラグを設定して、このメンバーの関心を示します。

bWriteCachingEnabled

クライアントが LUN で書き込みキャッシュを使用する場合は TRUE、それ以外の場合は FALSEullHintMask メンバーのVDS_HINT_WRITECACHINGENABLED フラグを設定して、このメンバーの関心を示します。

bMediaScanEnabled

クライアントがこの LUN のメディア スキャンを有効にする場合は TRUE、それ以外の場合は FALSEullHintMask メンバーのVDS_HINT_MEDIASCANENABLED フラグを設定して、このメンバーの関心を示します。

bConsistencyCheckEnabled

クライアントがこの LUN の整合性チェックを有効にする場合は TRUE、それ以外の場合は FALSEullHintMask メンバーのVDS_HINT_CONSISTENCYCHECKENABLED フラグを設定して、このメンバーに関心があることを示します。

BusType

LUN バスの種類を指定するVDS_STORAGE_BUS_TYPE列挙値。 ullHintMask メンバーのVDS_HINT_BUSTYPE フラグを設定して、このメンバーの関心を示します。

bReserved1

このメンバーは将来使用するために予約されています。 使用しないでください。

bReserved2

このメンバーは将来使用するために予約されています。 使用しないでください。

bReserved3

このメンバーは将来使用するために予約されています。 使用しないでください。

sRebuildPriority

LUN のリビルド優先度。 この値の範囲は、0 (最も低い優先度) から 15 (最も高い優先度) までです。

解説

IVdsHwProviderStoragePools::Create LunInStoragePool メソッドは、この構造体をパラメーターとして渡して、記憶域プールに LUN を作成するためのヒントを提供します。 これは、新しいヒントのセットを LUN に適用するために 、IVds Lun2::ApplyHints2 メソッドのパラメーターとして渡されます。 さらに、現在 LUN または LUN プレックスに適用されているヒントを報告するために、 IVds Lun2::QueryHints2 メソッドによって返されます。

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

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
ヘッダー vds.h

関連項目

IVdsLun2::ApplyHints2

IVdsLun2::QueryHints2