HYBRID_INFORMATION structure (ntddscsi.h)
The HYBRID_INFORMATION structure contains hybrid disk capability information. The structure is returned when the HYBRID_FUNCTION_GET_INFO function is selected in a IOCTL_SCSI_MINIPORT_HYBRID request sent to an HBA miniport driver.
Syntax
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;
Members
Version
The version of this structure. Set to HYBRID_REQUEST_INFO_STRUCTURE_VERSION.
Size
The size of this structure. Set to sizeof(HYBRID_INFORMATION).
HybridSupported
Miniport supports for hybrid disks. Set to TRUE if hybrid disks are supported. Otherwise, FALSE.
Status
The status of the hybrid disk cache. This contains one of the following values.
CacheTypeEffective
The non-volatile caching type currently set for hybrid disk. The effective cache type is one of the following values.
CacheTypeDefault
The default caching type used by the hybrid disk. The possible values are the same as for CacheTypeEffective.
FractionBase
The base value for fractional fields in this structure. This value is set to 255.
CacheSize
The size, in LBAs, of the non-volatile on the hybrid disk.
Attributes
The hybrid disk attributes.
Attributes.WriteCacheChangeable
Support for changes in write caching policy. The value is 1 policy changes are allowed. Otherwise, changes are ignored.
Attributes.WriteThroughIoSupported
Support for individual write operations when write-through caching is used. The value is 1 if individual writes are supported. Otherwise, the values is 0.
Attributes.FlushCacheSupported
Support for non-volatile cache flush. The value is 1 if flushes are supported. Otherwise, the value is 0.
Attributes.Removable
Support of removal of the non-volatile cache from the disk. The value is 1 if the cache is removable. Otherwise, the value is 0.
Attributes.ReservedBits
Reserved.
Priorities
Priority settings for the hybrid disk.
Priorities.PriorityLevelCount
The number of priority levels supported by the cache. Currently, a non-zero value indicates support for all priorities.
Priorities.MaxPriorityBehavior
If TRUE, the disk I/O can fail at maximum priority if the cache is full. Otherwise, if FALSE, the operation will complete to disk.
Priorities.OptimalWriteGranularity
Priorities.Reserved
Priorities.DirtyThresholdLow
The low threshold for a cache flush. This value is ratio in the range of FractionBase.
Priorities.DirtyThresholdHigh
The low threshold for a cache flush. This value is ratio in the range of FractionBase.
Priorities.SupportedCommands
Support for non-volatile cache specific commands to the hybrid disk.
Priorities.SupportedCommands.CacheDisable
Support for changes in write caching policy. The value is 1 policy changes are allowed. Otherwise, changes are ignored.
Priorities.SupportedCommands.SetDirtyThreshold
Support for individual write operations when write-through caching is used. The value is 1 if individual writes are supported. Otherwise, the values is 0.
Priorities.SupportedCommands.PriorityDemoteBySize
Support for non-volatile cache flush. The value is 1 if flushes are supported. Otherwise, the value is 0.
Priorities.SupportedCommands.PriorityChangeByLbaRange
Support for LBA range priority changes. The value is 1 if priority changes are supported. Otherwise, the value is 0.
Priorities.SupportedCommands.Evict
Support of removal of the non-volatile cache from the disk. The value is 1 if the cache is removable. Otherwise, the value is 0.
Priorities.SupportedCommands.ReservedBits
Reserved.
Priorities.SupportedCommands.MaxEvictCommands
The maximum concurrent Evict commands allowed that are outstanding. This value is valid when Evict is set to 1.
Priorities.SupportedCommands.MaxLbaRangeCountForEvict
The maximum number of LBA ranges possible to associate with an Evict command. This value is valid when Evict is set to 1.
Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba
The maximum number of LBA ranges possible to associate with a Priority Change command. This value is valid when PriorityChangeByLbaRange is set to 1.
Priorities.Priority[0]
An array of priority level descriptors. The number of descriptors present in the array is set in PriorityLevelCount.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available starting with Windows 8.1. |
Header | ntddscsi.h (include Ntddscsi.h) |