объединение 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) в разделе Состояние контроллера :

Это наихудшее время может возникнуть после таких событий, как внезапное завершение работы или активация нового образа встроенного ПО. Обычное время, как ожидается, будет гораздо короче.

Значение этого поля составляет 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

См. также раздел