Поделиться через


структура HYBRID_INFORMATION (ntddscsi.h)

Структура HYBRID_INFORMATION содержит сведения о возможностях гибридного диска. Структура возвращается, когда функция HYBRID_FUNCTION_GET_INFO выбрана в запросе IOCTL_SCSI_MINIPORT_HYBRID, отправленном драйверу мини-порта HBA.

Синтаксис

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

Состояние кэша гибридного диска. Это содержит одно из следующих значений.

Ценность Значение
NvCacheStatusUnknown
Минипорт-драйвер не может сообщить о состоянии кэша.
NvCacheStatusDisabling
В настоящее время кэш изменяется на состояние NvCacheStatusDisabled.
NvCacheStatusDisabled
Кэш на гибридном диске отключен.
NvCacheStatusEnabled
Кэш на гибридном диске включен.

CacheTypeEffective

Тип кэширования, не изменяющийся в данный момент для гибридного диска. Тип эффективного кэша является одним из следующих значений.

Ценность Значение
NvCacheTypeUnknown
Минипорт-драйвер не может сообщить о типе кэша
NvCacheNone
Диск не поддерживает ненезависимый кэш.
NvCacheTypeWriteBack
Кэширование обратной записи поддерживается гибридным диском.
NvCacheTypeWriteThrough
Кэширование через запись поддерживается гибридным диском.

CacheTypeDefault

Тип кэширования по умолчанию, используемый гибридным диском. Возможные значения совпадают с CacheTypeEffective.

FractionBase

Базовое значение для дробных полей в этой структуре. Это значение равно 255.

CacheSize

Размер LBAs, не изменяющегося на гибридном диске.

Attributes

Атрибуты гибридного диска.

Attributes.WriteCacheChangeable

Поддержка изменений в политике кэширования записи. Значение равно 1 изменениям политики разрешено. В противном случае изменения игнорируются.

Attributes.WriteThroughIoSupported

Поддержка отдельных операций записи при использовании кэширования путем записи. Значение равно 1, если поддерживаются отдельные записи. В противном случае значения равно 0.

Attributes.FlushCacheSupported

Поддержка очистки ненезависимого кэша. Значение равно 1, если поддерживаются очистки. В противном случае значение равно 0.

Attributes.Removable

Поддержка удаления ненезависимого кэша с диска. Значение равно 1, если кэш является съемным. В противном случае значение равно 0.

Attributes.ReservedBits

Скрытный.

Priorities

Параметры приоритета для гибридного диска.

Priorities.PriorityLevelCount

Количество уровней приоритета, поддерживаемых кэшем. В настоящее время значение, отличное от нуля, указывает на поддержку всех приоритетов.

Priorities.MaxPriorityBehavior

Если TRUE, операции ввода-вывода диска могут завершиться с максимальным приоритетом, если кэш заполнен. В противном случае, если 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

Максимальное количество диапазонов LBA, которые можно связать с командой Evict. Это значение допустимо, если evict имеет значение 1.

Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba

Максимальное количество диапазонов LBA, которые можно связать с командой "Изменение приоритета". Это значение допустимо, если PriorityChangeByLbaRange имеет значение 1.

Priorities.Priority[0]

Массив дескрипторов уровня приоритета. Число дескрипторов, присутствующих в массиве, задается в PriorityLevelCount.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 8.1.
заголовка ntddscsi.h (include Ntddscsi.h)

См. также

IOCTL_SCSI_MINIPORT_HYBRID