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