HYBRID_INFORMATION ntddscsi.h ()

HYBRID_INFORMATION 包含混合磁盘功能信息。 在发送到 HBA 微型端口驱动程序的 HYBRID_FUNCTION_GET_INFO 请求中选择了 IOCTL_SCSI_MINIPORT_HYBRID 函数时 ,将返回 结构。

语法

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

混合磁盘缓存的状态。 这包含以下值之一。

Value 含义
NvCacheStatusUnknown
微型端口驱动程序无法报告缓存状态。
NvCacheStatusDisabling
缓存当前正在更改到 NvCacheStatusDisabled 状态。
NvCacheStatusDisabled
混合磁盘上的缓存已禁用。
NvCacheStatusEnabled
混合磁盘上的缓存已启用。

CacheTypeEffective

当前为混合磁盘设置的非易失性缓存类型。 有效缓存类型是以下值之一。

Value 含义
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

缓存支持的优先级级别数。 目前,非零值表示支持所有优先级。

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 设置为 1 时,此值有效。

Priorities.SupportedCommands.MaxLbaRangeCountForEvict

可以与 Evict 命令关联的最大 LBA 范围数。 当 Evict 设置为 1 时,此值有效。

Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba

可以与优先级更改命令关联的最大 LBA 范围数。 当 PriorityChangeByLbaRange 设置为 1 时,此值有效。

Priorities.Priority

优先级描述符的数组。 数组中的描述符数目在 PriorityLevelCount 中设置

要求

   
最低受支持的客户端 从开始Windows 8.1。
标头 ntddscsi.h (包括 Ntddscsi.h)

请参阅

IOCTL_SCSI_MINIPORT_HYBRID