Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описываются константы DEVICE_DSM_ACTION, которые можно использовать для выполнения действия управления набором данных (DSM) в наборе данных устройства. Эти константы определены в ntddstor.h. Действия, определяемые как недеструктивные, не изменяют никакие данные. Сведения о том, как обрабатывается действие DSM, см. в обзоре управления набором данных.
Константы DEVICE_DSM_ACTION | Описание |
---|---|
DeviceDsmAction_None | Только в целях инициализации структуры. |
DeviceDsmAction_Trim | Драйвер выполнит операцию обрезки. |
DeviceDsmAction_Notification | Неразрушающий. Драйвер выполнит операцию уведомления. Для этого действия блок параметров сразу после структуры DEVICE_DSM_INPUT форматируется как структура DEVICE_DSM_NOTIFICATION_PARAMETERS. Поддерживается в Windows 7 и более поздних версиях. |
DeviceDsmAction_OffloadRead | Неразрушающий. Драйвер выполняет операцию чтения разгрузки. Для этого действия блок параметров сразу после структуры DEVICE_DSM_INPUT форматируется как структура DEVICE_DSM_OFFLOAD_READ_PARAMETERS. Выходные данные состоят из DEVICE_DSM_OUTPUT структуры, за которой следует STORAGE_OFFLOAD_READ_OUTPUT структура. Поддерживается в Windows 8 и более поздних версиях. |
DeviceDsmAction_OffloadWrite | Драйвер выполнит операцию разгрузки записи. Для этого действия блок параметров сразу после структуры DEVICE_DSM_INPUT форматируется как структура DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS. Выходные данные состоят из структуры DEVICE_DSM_OUTPUT, за которой следует STORAGE_OFFLOAD_WRITE_OUTPUT структура. Поддерживается в Windows 8 и более поздних версиях. |
DeviceDsmAction_Allocation | Неразрушающий. Драйвер выполнит операцию подготовки логического блока. Диапазон логических блоков указывается в одной DEVICE_DSM_RANGE структуре. Поддерживается в Windows 8 и более поздних версиях. |
DeviceDsmAction_Repair | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_Scrub | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_DrtQuery | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_DrtClear | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_DrtDisable | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_TieringQuery | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_Map | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_RegenerateParity | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_NvCache_Change_Priority | Неразрушающий. Драйвер изменит приоритет кэширования указанных диапазонов логических блоков. Новый целевой приоритет задается в DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS структуре, которая находится в блоке параметров сразу после DEVICE_DSM_INPUT структуры. Диапазоны логических блоков, для которых необходимо изменить приоритет, задаются в одной или нескольких DEVICE_DSM_RANGE структурах. Поддерживается в Windows 8.1 и более поздних версиях. |
DeviceDsmAction_NvCache_Evict | Неразрушающий. Драйвер вытеснит данные из носителя кэширования. Чтобы вытеснить все данные, задайте флаг DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE в элементе FlagsDEVICE_DSM_INPUT и не включать структуры DEVICE_DSM_RANGE. Определенные диапазоны логических блоков для вытеснения предоставляются в одной или нескольких DEVICE_DSM_RANGE структурах. Действие DeviceDsmAction_NvCache_Evict выполняется синхронно. Никакие другие действия не обслуживаются до тех пор, пока действие вытеснения не выполнено или не выполнено. Чтобы ограничить влияние приложений с помощью устройства, каждое действие DeviceDsmAction_NvCache_Evict должно включать относительно небольшие диапазоны данных. Они не должны превышать 10 МБ и в идеале меньше 2 МБ. Это позволит свести к минимуму вероятность того, что приложения уровня пользователя будут испытывать заметные задержки при доступе к данным на устройстве. Поддерживается в Windows 8.1 и более поздних версиях. |
DeviceDsmAction_TopologyIdQuery | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_GetPhysicalAddresses | Неразрушающий. Драйвер вернет диапазоны физических адресов, соответствующие одному или нескольким диапазонам логических блоков. Это действие поддерживается только на дисках постоянной памяти. Диапазоны логических блоков указываются в виде ряда структур DEVICE_DSM_RANGE сразу после DEVICE_DSM_INPUT структуры. Выходные данные состоят из структуры DEVICE_DSM_OUTPUT, за которой следует заполнение, а затем DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT структуру с диапазонами физических адресов, запрошенными в блоке вывода. Каждый диапазон физических адресов возвращается в DEVICE_STORAGE_ADDRESS_RANGE структуре. Если выходной буфер недостаточно велик для хранения всех данных, DSM возвращает STATUS_BUFFER_OVERFLOW и поле TotalNumberOfRanges структуры DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT содержит количество элементов DEVICE_STORAGE_ADDRESS_RANGE, необходимых для выполнения запроса. Любые диапазоны физических адресов, содержащие ошибку памяти, будут иметь DEVICE_DSM_PHYSICAL_ADDRESS_HAS_MEMORY_ERROR в качестве адреса. Приложения могут сопоставить возвращаемые диапазоны физических адресов с диапазонами входных логических блоков, отслеживая длину каждого возвращаемого физического диапазона адресов. Обратите внимание, что один диапазон логических блоков может соответствовать множеству физических диапазонов адресов. Если DEVICE_DSM_FLAG_PHYSICAL_ADDRESSES_OMIT_TOTAL_RANGES задан в поле флагов структуры DEVICE_DSM_INPUT, драйвер не будет вычислять TotalNumberOfRanges. Это оптимизация производительности для вызывающих абонентов, которые не должны знать общее количество диапазонов. |
DeviceDsmAction_ScopeRegen | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_ReportZones | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_OpenZone | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_FinishZone | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_CloseZone | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_ResetWritePointer | Только для внутреннего использования. |
DeviceDsmAction_GetRangeErrorInfo | Неразрушающий. Драйвер вернет сведения о том, содержит ли один или несколько диапазонов логических блоков любые ошибки мультимедиа. Это поддерживается только на дисках постоянной памяти. Диапазоны логических блоков указываются в виде ряда структур DEVICE_DSM_RANGE сразу после DEVICE_DSM_INPUT структуры. Выходные данные состоят из структуры DEVICE_DSM_OUTPUT, за которой следует заполнение и структура DEVICE_DSM_RANGE_ERROR_OUTPUT), которая содержит массив DEVICE_STORAGE_RANGE_ATTRIBUTES. Если выходной буфер недостаточно велик для хранения всех данных, DSM возвращает STATUS_BUFFER_OVERFLOW и поле TotalNumberOfRanges структуры DEVICE_DSM_RANGE_ERROR_OUTPUT содержит количество элементов DEVICE_STORAGE_RANGE_ATTRIBUTES, необходимых для удовлетворения запроса. Каждая структура DEVICE_STORAGE_RANGE_ATTRIBUTES содержит поле IsRangeBad. Драйвер задает для этого поля значение 1, если диапазон логических блоков содержит ошибку носителя. Если в любом из запрошенных диапазонов нет ошибок мультимедиа, драйвер устанавливает DEVICE_STORAGE_NO_ERRORS в поле флагов DEVICE_DSM_RANGE_ERROR_OUTPUT. Элементы массива DEVICE_STORAGE_RANGE_ATTRIBUTES сортируются таким образом, чтобы их порядок соответствовал порядку входных диапазонов. Например, если первый входной диапазон был разбит на 3 выходных диапазона, они будут первыми 3 диапазонами в массиве. Вызывающий объект может узнать, какие диапазоны выходных данных соответствуют входному диапазону, отслеживая длину выходных диапазонов. |
DeviceDsmAction_WriteZeroes | Только для внутреннего использования. |
DeviceDsmAction_LostQuery | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_GetFreeSpace | Неразрушающий. Только для внутреннего использования. |
DeviceDsmAction_ConversionQuery | Неразрушающий. Только для внутреннего использования. |