структура 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
Состояние кэша гибридных дисков. Содержит одно из следующих значений.
CacheTypeEffective
Тип энергонезависимого кэширования, который в настоящее время задан для гибридного диска. Действующий тип кэша является одним из следующих значений.
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) |