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
混合式磁碟快取的狀態。 這包含下列其中一個值。
值 | 意義 |
---|---|
|
迷你埠驅動程式無法報告快取狀態。 |
|
快取目前變更為 NvCacheStatusDisabled 狀態。 |
|
混合式磁碟上的快取已停用。 |
|
混合式磁碟上的快取已啟用。 |
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
快取所支持的優先順序層級數目。 目前,非零值表示支援所有優先順序。
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
允許的並行收回命令數目上限。 當 收回 設定為 1 時,這個值是有效的。
Priorities.SupportedCommands.MaxLbaRangeCountForEvict
可以與收回命令建立關聯的 LBA 範圍數目上限。 當 收回 設定為 1 時,這個值是有效的。
Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba
可以與 Priority Change 命令建立關聯的 LBA 範圍數目上限。 當 PriorityChangeByLbaRange 設定為 1 時,這個值是有效的。
Priorities.Priority[0]
優先順序層級描述項的陣列。 陣列中存在的描述項數目是在 PriorityLevelCount 中設定。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 8.1 開始提供。 |
標頭 | ntddscsi.h (包含 Ntddscsi.h) |