объединение NVME_CONTROLLER_CAPABILITIES (nvme.h)
Содержит значения только для чтения, определяющие основные возможности контроллера для размещения программного обеспечения.
Эта структура используется в поле Возможности контроллера (CAP) структуры NVME_CONTROLLER_REGISTERS .
Синтаксис
typedef union {
struct {
ULONGLONG MQES : 16;
ULONGLONG CQR : 1;
ULONGLONG AMS_WeightedRoundRobinWithUrgent : 1;
ULONGLONG AMS_VendorSpecific : 1;
ULONGLONG Reserved0 : 5;
ULONGLONG TO : 8;
ULONGLONG DSTRD : 4;
ULONGLONG NSSRS : 1;
ULONGLONG CSS_NVM : 1;
ULONGLONG CSS_Reserved0 : 1;
ULONGLONG CSS_Reserved1 : 1;
ULONGLONG CSS_Reserved2 : 1;
ULONGLONG CSS_Reserved3 : 1;
ULONGLONG CSS_Reserved4 : 1;
ULONGLONG CSS_MultipleIo : 1;
ULONGLONG CSS_AdminOnly : 1;
ULONGLONG Reserved2 : 3;
ULONGLONG MPSMIN : 4;
ULONGLONG MPSMAX : 4;
ULONGLONG Reserved3 : 8;
} DUMMYSTRUCTNAME;
ULONGLONG AsUlonglong;
} NVME_CONTROLLER_CAPABILITIES, *PNVME_CONTROLLER_CAPABILITIES;
Члены
DUMMYSTRUCTNAME
DUMMYSTRUCTNAME.MQES
Указывает максимальный размер отдельной очереди, поддерживаемый контроллером.
Это значение применяется к каждой из очередей отправки ввода-вывода и очередей завершения ввода-вывода, создаваемых ведущим программным обеспечением.
Это значение на основе 0. Минимальное значение — 1h
, указывающее две записи очереди.
DUMMYSTRUCTNAME.CQR
Указывает, требуются ли контроллеру физически непрерывные очереди отправки ввода-вывода и очереди завершения ввода-вывода.
Если для этого поля задано значение 1
, контроллер требует, чтобы очереди отправки ввода-вывода и очереди завершения ввода-вывода были физически непрерывными.
Когда это поле очищается до 0
, контроллер поддерживает очереди отправки ввода-вывода и очереди завершения ввода-вывода, которые физически не являются смежными.
Если для этого поля задано значение 1
, то для параметра Физически смежный бит (поле ПК ) в командах Create I/O Submission Queue (Создать очередь отправки ввода-вывода ) и Create I/O Completion Queue (Создать очередь завершения ввода-вывода ) задано значение 1
.
DUMMYSTRUCTNAME.AMS_WeightedRoundRobinWithUrgent
Указывает, поддерживается ли контроллером механизм арбитража взвешаемого циклического перебора с классом срочного приоритета.
Если для этого поля задано значение 1
, поддерживается механизм арбитража взвешенными раундовыми переборами с классом срочного приоритета.
В этих полях AMS_WeightedRoundRobinWithUrgent и AMS_VendorSpecific указаны необязательные механизмы арбитража, поддерживаемые контроллером. Механизм арбитража с циклическим перебором не указан, так как все управляющие должны поддерживать этот механизм арбитража.
DUMMYSTRUCTNAME.AMS_VendorSpecific
Указывает, поддерживается ли механизм арбитража для конкретного поставщика контроллером.
Если для этого поля задано значение 1
, поддерживается механизм арбитража для конкретного поставщика.
DUMMYSTRUCTNAME.Reserved0
Зарезервированное поле (биты от 19 до 23).
DUMMYSTRUCTNAME.TO
Указывает на худшее время, когда ведущее программное обеспечение будет ожидать перехода значения Ready (RDY) в разделе Состояние контроллера :
-
0
на1
после значения EN в NVME_CONTROLLER_CONFIGURATION переходит из0
в1
; или -
1
на0
после значения EN в NVME_CONTROLLER_CONFIGURATION переходит с1
на0
.
Это наихудшее время может возникнуть после таких событий, как внезапное завершение работы или активация нового образа встроенного ПО. Обычное время, как ожидается, будет гораздо короче.
Значение этого поля составляет 500 миллисекундах.
DUMMYSTRUCTNAME.DSTRD
Указывает шаг между регистрами дверной звонок.
Каждый регистр doorbell очереди отправки и завершения имеет размер 32 бита. Шаг указывается как (2 ^ (2 + DSTRD))
в байтах.
Значение 0h
указывает на шаг в 4 байта, где регистры дверной звонок упаковываются без зарезервированного пространства между каждым регистром.
DUMMYSTRUCTNAME.NSSRS
Указывает, поддерживает ли контроллер функцию сброса подсистемы NVM, определенную в структуре NVME_NVM_SUBSYSTEM_RESET .
Если для этого поля задано значение 1
, контроллер поддерживает функцию сброса подсистемы NVM.
Если это поле очищается до 0
, контроллер не поддерживает функцию сброса подсистемы NVM.
DUMMYSTRUCTNAME.CSS_NVM
Это поле указывает, поддерживается ли набор команд NVM контроллером. Должен поддерживаться как минимум один набор команд.
Если для этого поля задано значение 1
, поддерживается набор команд NVM.
CSS_Reserved0CSS_Reserved6 поля зарезервированы для других наборов команд ввода-вывода. Если для одного из этих полей задано 1
значение , то поддерживается соответствующий набор команд ввода-вывода.
DUMMYSTRUCTNAME.CSS_Reserved0
DUMMYSTRUCTNAME.CSS_Reserved1
DUMMYSTRUCTNAME.CSS_Reserved2
DUMMYSTRUCTNAME.CSS_Reserved3
DUMMYSTRUCTNAME.CSS_Reserved4
DUMMYSTRUCTNAME.CSS_MultipleIo
DUMMYSTRUCTNAME.CSS_AdminOnly
DUMMYSTRUCTNAME.Reserved2
DUMMYSTRUCTNAME.MPSMIN
Указывает минимальный размер страницы памяти узла, поддерживаемый контроллером.
Минимальный размер страницы памяти — (2 ^ (12 + MPSMIN))
.
Узел не настраивает размер страницы памяти в поле MPSNVME_CONTROLLER_CONFIGURATION меньше этого значения.
DUMMYSTRUCTNAME.MPSMAX
Указывает максимальный размер страницы памяти узла, поддерживаемый контроллером.
Максимальный размер страницы памяти — (2 ^ (12 + MPSMAX))
.
Узел не настраивает размер страницы памяти в поле MPSNVME_CONTROLLER_CONFIGURATION , который больше этого значения.
DUMMYSTRUCTNAME.Reserved3
AsUlonglong
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 |
Верхняя часть | nvme.h |