структура VDS_HINTS (vds.h)
[Начиная с Windows 8 и Windows Server 2012, COM-интерфейс службы виртуальных дисков замечается API управления хранилищем Windows.]
Определяет автоматические указания для плекса LUN или LUN.
Синтаксис
typedef struct _VDS_HINTS {
ULONGLONG ullHintMask;
ULONGLONG ullExpectedMaximumSize;
ULONG ulOptimalReadSize;
ULONG ulOptimalReadAlignment;
ULONG ulOptimalWriteSize;
ULONG ulOptimalWriteAlignment;
ULONG ulMaximumDriveCount;
ULONG ulStripeSize;
BOOL bFastCrashRecoveryRequired;
BOOL bMostlyReads;
BOOL bOptimizeForSequentialReads;
BOOL bOptimizeForSequentialWrites;
BOOL bRemapEnabled;
BOOL bReadBackVerifyEnabled;
BOOL bWriteThroughCachingEnabled;
BOOL bHardwareChecksumEnabled;
BOOL bIsYankable;
SHORT sRebuildPriority;
} VDS_HINTS, *PVDS_HINTS;
Члены
ullHintMask
Маска указания LUN. Каждый из элементов BOOL этой структуры имеет соответствующий флаг подсказки, который можно задать в маске. Если установлен флаг подсказки, учитывается соответствующее указание. Если флаг подсказки не задан, указание игнорируется. Флаги указания описаны в следующей таблице.
ullExpectedMaximumSize
Максимальный размер, до которого ожидается увеличение LUN, в байтах. Значение может быть равно, больше или меньше значения, указанного в ullSizeInBytes при вызове метода IVdsSubSystem::CreateLun . Некоторые поставщики используют это значение для резервирования места для LUN. Поставщики, которые не могут зарезервировать пространство, обычно игнорируют этот параметр.
ulOptimalReadSize
Оптимальный размер чтения для LUN в байтах. Ноль указывает на отсутствие оптимального размера для чтения.
ulOptimalReadAlignment
Оптимальное выравнивание чтения относительно первого логического блока LUN. Ноль указывает на отсутствие оптимального выравнивания чтения.
ulOptimalWriteSize
Оптимальный размер записи для LUN в байтах. Ноль указывает на отсутствие оптимального размера записи.
ulOptimalWriteAlignment
Оптимальное выравнивание записи относительно первого логического блока LUN. Ноль указывает на отсутствие оптимального выравнивания записи.
ulMaximumDriveCount
Максимальное количество дисков, которые необходимо использовать в LUN. Ноль означает отсутствие максимального количества дисков. Это значение можно использовать для ограничения количества чередуемых полос в наборе полос.
ulStripeSize
Размер чередования зеркального отображения или чередования четности в байтах. Ноль оставляет размер полоски неопределенным.
bFastCrashRecoveryRequired
Если этот элемент имеет значение TRUE, время восстановления ограничено. Установите флаг VDS_HINT_FASTCRASHRECOVERYREQUIRED в элементе ullHintMask , чтобы указать интерес к этому элементу.
bMostlyReads
Чтобы оптимизировать использование в основном считывает (например, через зеркальное отображение, а не чередование четности), задайте для этого элемента значение TRUE. В противном случае задайте для него значение FALSE. Установите флаг VDS_HINT_MOSTLYREADS в элементе ullHintMask , чтобы указать интерес к этому элементу.
bOptimizeForSequentialReads
Для оптимизации для шаблона использования последовательных операций чтения установите для этого элемента значение TRUE. В противном случае задайте для него значение FALSE. Задание для обоих элементов bOptimizeForSequentialReads и bOptimizeForSequentialWrites на FALSE оптимизирует для случайных операций ввода-вывода. Установите флаг VDS_HINT_OPTIMIZEFORSEQUENTIALREADS в элементе ullHintMask , чтобы указать интерес к этому элементу.
bOptimizeForSequentialWrites
Для оптимизации для шаблона использования последовательных операций записи задайте для этого элемента значение TRUE. В противном случае задайте для него значение FALSE. Задание для обоих элементов bOptimizeForSequentialReads и bOptimizeForSequentialWrites на FALSE оптимизирует для случайных операций ввода-вывода. Установите флаг VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES в элементе ullHintMask , чтобы указать интерес к этому элементу.
bRemapEnabled
Если этот элемент имеет значение TRUE, поставщик автоматически переназначает экстенты LUN для экстентов диска. Если задано значение FALSE, сопоставление экстентов LUN с экстентами диска остается фиксированным после настройки LUN, если экстенты не переназначаются явным образом, чтобы избежать поврежденных блоков. Установите флаг VDS_HINT_REMAPENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.
bReadBackVerifyEnabled
Если для этого элемента задано значение TRUE, поставщик проверяет записи в LUN с помощью обратного чтения. Если задано значение FALSE, поставщик не проверяет записи. Установите флаг VDS_HINT_READBACKVERIFYENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.
bWriteThroughCachingEnabled
Если этот элемент имеет значение TRUE, поставщик включает кэширование через запись в LUN. Если задано значение FALSE, поставщик не включает кэширование через запись. Установите флаг VDS_HINT_WRITETHROUGHCACHINGENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.
bHardwareChecksumEnabled
Если этот элемент имеет значение TRUE, поставщик включает контрольную сумму для LUN. Установите флаг VDS_HINT_HARDWARECHECKSUMENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.
bIsYankable
Если этот элемент имеет значение TRUE, диски, которые участвуют в LUN, можно физически удалить без значительных нарушений работы системы (обычно это верно, если LUN состоит из экстентов всего нескольких дисков). Если оно имеет значение FALSE, LUN нельзя удалить без значительных нарушений работы системы. Установите флаг VDS_HINT_ISYANKABLE в элементе ullHintMask , чтобы указать интерес к этому элементу.
sRebuildPriority
Приоритет перестроения для LUN. Значение может варьироваться от 0 (самый низкий приоритет) до 15 (наивысший приоритет).
Комментарии
Метод IVdsSubSystem::CreateLun передает эту структуру в качестве параметра, чтобы предоставить указания для создания LUN. Он передается в качестве параметра в методе ApplyHints в интерфейсах IVdsLun и IVdsLunPlex для применения нового набора указаний к плексу LUN или LUN соответственно. Кроме того, он возвращается методом QueryHints в интерфейсах IVdsLun и IVdsLunPlex , чтобы сообщить о указаниях, которые в настоящее время применяются к плексу LUN или LUN соответственно.
Указания не являются директивами для разработчиков. Хотя разработчики, как правило, должны делать все возможное, чтобы принять во внимание подсказки, они не обязаны следовать им. Разработчики могут выбрать альтернативные варианты, если не удается выполнить указанные указания по техническим причинам или если следовать за ними может привести к плохой конфигурации.
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Верхняя часть | vds.h |