HYBRID_INFORMATION 構造体 (ntddscsi.h)

HYBRID_INFORMATION構造体には、ハイブリッド ディスク機能情報が含まれています。 HBA ミニポート ドライバーに送信されたIOCTL_SCSI_MINIPORT_HYBRID要求で HYBRID_FUNCTION_GET_INFO 関数が選択されると、構造体が返されます。

構文

typedef struct _HYBRID_INFORMATION {
  ULONG          Version;
  ULONG          Size;
  BOOLEAN        HybridSupported;
  NVCACHE_STATUS Status;
  NVCACHE_TYPE   CacheTypeEffective;
  NVCACHE_TYPE   CacheTypeDefault;
  ULONG          FractionBase;
  ULONGLONG      CacheSize;
  struct {
    ULONG WriteCacheChangeable : 1;
    ULONG WriteThroughIoSupported : 1;
    ULONG FlushCacheSupported : 1;
    ULONG Removable : 1;
    ULONG ReservedBits : 28;
  } Attributes;
  struct {
    UCHAR                             PriorityLevelCount;
    BOOLEAN                           MaxPriorityBehavior;
    UCHAR                             OptimalWriteGranularity;
    UCHAR                             Reserved;
    ULONG                             DirtyThresholdLow;
    ULONG                             DirtyThresholdHigh;
    struct {
      ULONG CacheDisable : 1;
      ULONG SetDirtyThreshold : 1;
      ULONG PriorityDemoteBySize : 1;
      ULONG PriorityChangeByLbaRange : 1;
      ULONG Evict : 1;
      ULONG ReservedBits : 27;
      ULONG MaxEvictCommands;
      ULONG MaxLbaRangeCountForEvict;
      ULONG MaxLbaRangeCountForChangeLba;
    } SupportedCommands;
    NVCACHE_PRIORITY_LEVEL_DESCRIPTOR Priority[0];
  } Priorities;
} HYBRID_INFORMATION, *PHYBRID_INFORMATION;

メンバー

Version

この構造体のバージョン。 [HYBRID_REQUEST_INFO_STRUCTURE_VERSION] に設定します。

Size

この構造のサイズ。 sizeof(HYBRID_INFORMATION) に設定します。

HybridSupported

ハイブリッド ディスクのミニポート サポート。 ハイブリッド ディスクがサポートされている場合は TRUE に 設定します。 それ以外の場合は FALSE

Status

ハイブリッド ディスク キャッシュの状態。 これには、次のいずれかの値が含まれます。

意味
NvCacheStatusUnknown
ミニポート ドライバーは、キャッシュの状態を報告できません。
NvCacheStatusDisabling
現在、キャッシュは NvCacheStatusDisabled 状態に変更されています。
NvCacheStatusDisabled
ハイブリッド ディスク上のキャッシュは無効になっています。
NvCacheStatusEnabled
ハイブリッド ディスク上のキャッシュが有効になっています。

CacheTypeEffective

ハイブリッド ディスクに現在設定されている非揮発性キャッシュの種類。 有効なキャッシュの種類は、次のいずれかの値です。

意味
NvCacheTypeUnknown
ミニポート ドライバーは、キャッシュの種類を報告できません
NvCacheNone
ディスクは、非揮発性キャッシュをサポートしていません。
NvCacheTypeWriteBack
ライトバック キャッシュはハイブリッド ディスクでサポートされています。
NvCacheTypeWriteThrough
ライトスルー キャッシュは、ハイブリッド ディスクでサポートされています。

CacheTypeDefault

ハイブリッド ディスクで使用される既定のキャッシュの種類。 指定できる値は、 CacheTypeEffective の場合と同じです。

FractionBase

この構造体の小数フィールドの基本値。 この値は 255 に設定されます。

CacheSize

ハイブリッド ディスク上の不揮発性のサイズ (LBA 単位)。

Attributes

ハイブリッド ディスク属性。

Attributes.WriteCacheChangeable

書き込みキャッシュ ポリシーの変更のサポート。 値は 1 つのポリシー変更が許可されます。 それ以外の場合、変更は無視されます。

Attributes.WriteThroughIoSupported

書き込みスルー キャッシュを使用する場合の個々の書き込み操作のサポート。 個々の書き込みがサポートされている場合、値は 1 です。 それ以外の場合、値は 0 です。

Attributes.FlushCacheSupported

非揮発性キャッシュ フラッシュのサポート。 フラッシュがサポートされている場合、値は 1 です。 それ以外の場合、値は 0 です。

Attributes.Removable

ディスクからの非揮発性キャッシュの削除のサポート。 キャッシュがリムーバブルである場合、値は 1 です。 それ以外の場合、値は 0 です。

Attributes.ReservedBits

予約済み。

Priorities

ハイブリッド ディスクの優先度設定。

Priorities.PriorityLevelCount

キャッシュでサポートされている優先度レベルの数。 現在、0 以外の値は、すべての優先度のサポートを示します。

Priorities.MaxPriorityBehavior

TRUE の場合、キャッシュがいっぱいの場合、ディスク I/O は最大優先度で失敗する可能性があります。 それ以外の場合、 FALSE の場合、操作はディスクに対して完了します。

Priorities.OptimalWriteGranularity

Priorities.Reserved

Priorities.DirtyThresholdLow

キャッシュ フラッシュのしきい値が低い。 この値は FractionBase の範囲内の 比率です

Priorities.DirtyThresholdHigh

キャッシュ フラッシュのしきい値が低い。 この値は FractionBase の範囲内の 比率です

Priorities.SupportedCommands

ハイブリッド ディスクに対する非揮発性キャッシュ固有のコマンドのサポート。

Priorities.SupportedCommands.CacheDisable

書き込みキャッシュ ポリシーの変更のサポート。 値は 1 つのポリシー変更が許可されます。 それ以外の場合、変更は無視されます。

Priorities.SupportedCommands.SetDirtyThreshold

書き込みスルー キャッシュを使用する場合の個々の書き込み操作のサポート。 個々の書き込みがサポートされている場合、値は 1 です。 それ以外の場合、値は 0 です。

Priorities.SupportedCommands.PriorityDemoteBySize

非揮発性キャッシュ フラッシュのサポート。 フラッシュがサポートされている場合、値は 1 です。 それ以外の場合、値は 0 です。

Priorities.SupportedCommands.PriorityChangeByLbaRange

LBA 範囲の優先度変更のサポート。 優先度の変更がサポートされている場合、値は 1 です。 それ以外の場合、値は 0 です。

Priorities.SupportedCommands.Evict

ディスクからの非揮発性キャッシュの削除のサポート。 キャッシュがリムーバブルである場合、値は 1 です。 それ以外の場合、値は 0 です。

Priorities.SupportedCommands.ReservedBits

予約済み。

Priorities.SupportedCommands.MaxEvictCommands

未処理の同時実行 Evict コマンドの最大数。 この値は、 Evict が 1 に設定されている場合に有効です。

Priorities.SupportedCommands.MaxLbaRangeCountForEvict

Evict コマンドに関連付け可能な LBA 範囲の最大数。 この値は、 Evict が 1 に設定されている場合に有効です。

Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba

Priority Change コマンドに関連付け可能な LBA 範囲の最大数。 この値は、 PriorityChangeByLbaRange が 1 に設定されている場合に有効です。

Priorities.Priority[0]

優先度レベル記述子の配列。 配列に存在する記述子の数は PriorityLevelCount で設定されます。

要件

要件
サポートされている最小のクライアント Windows 8.1以降で使用できます。
Header ntddscsi.h (Ntddscsi.h を含む)

こちらもご覧ください

IOCTL_SCSI_MINIPORT_HYBRID