// ntddscsi.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
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.
VersionThe version of this structure. Set to HYBRID_REQUEST_INFO_STRUCTURE_VERSION.
SizeThe size of this structure. Set to sizeof(HYBRID_INFORMATION).
HybridSupportedMiniport supports for hybrid disks. Set to TRUE if hybrid disks are supported. Otherwise, FALSE.
StatusThe status of the hybrid disk cache. This contains one of the following values.
| Value | Meaning |
|---|---|
| NvCacheStatusUnknown | The miniport driver is not able to report the cache status. |
| NvCacheStatusDisabling | The cache is currently changing to NvCacheStatusDisabled status. |
| NvCacheStatusDisabled | The cache on the hybrid disk is disabled. |
| NvCacheStatusEnabled | The cache on the hybrid disk is enabled. |
CacheTypeEffectiveThe non-volatile caching type currently set for hybrid disk. The effective cache type is one of the following values.
| Value | Meaning |
|---|---|
| NvCacheTypeUnknown | The miniport driver is not able to report the cache type |
| NvCacheNone | The disk does not support a non-volatile cache. |
| NvCacheTypeWriteBack | Write-back caching is supported by hybrid disk. |
| NvCacheTypeWriteThrough | Write-through caching is supported by hybrid disk. |
CacheTypeDefaultThe default caching type used by the hybrid disk. The possible values are the same as for CacheTypeEffective.
FractionBaseThe base value for fractional fields in this structure. This value is set to 255.
CacheSizeThe size, in LBAs, of the non-volatile on the hybrid disk.
AttributesThe hybrid disk attributes.
Attributes.WriteCacheChangeableSupport for changes in write caching policy. The value is 1 policy changes are allowed. Otherwise, changes are ignored.
Attributes.WriteThroughIoSupportedSupport 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.FlushCacheSupportedSupport for non-volatile cache flush. The value is 1 if flushes are supported. Otherwise, the value is 0.
Attributes.RemovableSupport 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.ReservedBitsReserved.
PrioritiesPriority settings for the hybrid disk.
Priorities.PriorityLevelCountThe number of priority levels supported by the cache. Currently, a non-zero value indicates support for all priorities.
Priorities.MaxPriorityBehaviorIf 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.OptimalWriteGranularityPriorities.ReservedPriorities.DirtyThresholdLowThe low threshold for a cache flush. This value is ratio in the range of FractionBase.
Priorities.DirtyThresholdHighThe low threshold for a cache flush. This value is ratio in the range of FractionBase.
Priorities.SupportedCommandsSupport for non-volatile cache specific commands to the hybrid disk.
Priorities.SupportedCommands.CacheDisableSupport for changes in write caching policy. The value is 1 policy changes are allowed. Otherwise, changes are ignored.
Priorities.SupportedCommands.SetDirtyThresholdSupport 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.PriorityDemoteBySizeSupport for non-volatile cache flush. The value is 1 if flushes are supported. Otherwise, the value is 0.
Priorities.SupportedCommands.PriorityChangeByLbaRangeSupport for LBA range priority changes. The value is 1 if priority changes are supported. Otherwise, the value is 0.
Priorities.SupportedCommands.EvictSupport 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.ReservedBitsReserved.
Priorities.SupportedCommands.MaxEvictCommandsThe maximum concurrent Evict commands allowed that are outstanding. This value is valid when Evict is set to 1.
Priorities.SupportedCommands.MaxLbaRangeCountForEvictThe maximum number of LBA ranges possible to associate with an Evict command. This value is valid when Evict is set to 1.
Priorities.SupportedCommands.MaxLbaRangeCountForChangeLbaThe maximum number of LBA ranges possible to associate with a Priority Change command. This value is valid when PriorityChangeByLbaRange is set to 1.
Priorities.PriorityAn array of priority level descriptors. The number of descriptors present in the array is set in PriorityLevelCount.