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
ハイブリッド ディスク キャッシュの状態。 これには、次のいずれかの値が含まれます。
CacheTypeEffective
ハイブリッド ディスクに現在設定されている非揮発性キャッシュの種類。 有効なキャッシュの種類は、次のいずれかの値です。
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 を含む) |