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


структура 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

Miniport поддерживает гибридные диски. Установите значение TRUE , если поддерживаются гибридные диски. В противном случае — FALSE.

Status

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

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

CacheTypeEffective

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

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

CacheTypeDefault

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

FractionBase

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

CacheSize

Размер в подсистемах балансировки нагрузки непостоянной нагрузки на гибридном диске.

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 задано значение 1.

Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba

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

Priorities.Priority[0]

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

Требования

Требование Значение
Минимальная версия клиента Доступно, начиная с Windows 8.1.
Верхняя часть ntddscsi.h (включая Ntddscsi.h)

См. также раздел

IOCTL_SCSI_MINIPORT_HYBRID