объединение NVME_CONTROLLER_CONFIGURATION (nvme.h)
Содержит параметры конфигурации чтения и записи для контроллера.
Ведущее программное обеспечение устанавливает для следующих полей допустимые значения перед включением контроллера, задав для поля Enable EN значение 1
:
Эта структура используется в поле Возможности контроллера (CC) структуры NVME_CONTROLLER_REGISTERS .
Синтаксис
typedef union {
struct {
ULONG EN : 1;
ULONG Reserved0 : 3;
ULONG CSS : 3;
ULONG MPS : 4;
ULONG AMS : 3;
ULONG SHN : 2;
ULONG IOSQES : 4;
ULONG IOCQES : 4;
ULONG Reserved1 : 8;
} DUMMYSTRUCTNAME;
ULONG AsUlong;
} NVME_CONTROLLER_CONFIGURATION, *PNVME_CONTROLLER_CONFIGURATION;
Члены
DUMMYSTRUCTNAME
DUMMYSTRUCTNAME.EN
Указывает, включен ли контроллер для обработки команд.
Если для этого значения задано 1
значение , контроллер будет обрабатывать команды на основе операций записи в очередь отправки .
Если для этого значения задано 0
значение , контроллер не будет обрабатывать команды и не помещать записи очереди завершения в очередь завершения.
При переходе этого поля с 1
на 0
контроллер сбрасывается (называется сбросом контроллера). При сбросе удаляются все очереди отправки ввода-вывода и очереди завершения ввода-вывода, сбрасываются очереди отправки и завершения Администратор, а оборудование переводится в состояние простоя. Сброс не влияет на регистры PCI Express или Администратор очереди (AQA, ASQ или ACQ). Все остальные регистры контроллеров и внутренние состояния контроллера (например, значения компонентов, которые не являются постоянными в состояниях питания) сбрасываются до значений по умолчанию. Контроллер гарантирует отсутствие потери данных для команд, в которых перед операцией сброса были помещены соответствующие записи очереди завершения в очередь завершения ввода-вывода.
Когда это поле очищается до 0
, значение поля Ready (RDY) в разделе Состояние контроллера0
очищается контроллером после того, как контроллер будет готов к повторному включению. Если для этого поля задано значение 1
, контроллер присваивает значению поля RDY в разделе Состояние1
контроллера значение , когда оно будет готово к обработке команд.
RDY может быть задано до 1
того, как пространства имен будут готовы к доступу.
Если для этого поля 0
1
задано 1
значение RDY, а для параметра 1 — значение 0, если RDY равно 0, результаты будут неопределенными. Регистры очереди Администратор (AQA, ASQ и ACQ) будут изменены только при очистке EN до 0
.
DUMMYSTRUCTNAME.Reserved0
DUMMYSTRUCTNAME.CSS
Указывает набор команд ввода-вывода, выбранный для использования для очередей отправки ввода-вывода.
Ведущее программное обеспечение выберет только поддерживаемый набор команд ввода-вывода, как указано в поле CSSв разделе Возможности контроллера.
Это значение этого поля можно изменить только при отключении контроллера (поле EN очищается до 0
). Выбранный набор команд ввода-вывода будет использоваться для всех очередей отправки ввода-вывода.
DUMMYSTRUCTNAME.MPS
Указывает размер страницы памяти узла. Размер страницы памяти — (2 ^ (12 + MPS))
. Таким образом, минимальный размер страницы памяти узла составляет 4 КБ, а максимальный размер страницы памяти узла — 128 МБ.
Значение, заданное программным обеспечением узла, должно быть поддерживаемым значением, как указано в полях MPSMAX и MPSMINв разделе Возможности контроллера. В этом поле описывается значение, используемое для размера записи PRP.
Это поле может быть изменено, только если en очищается до 0
.
DUMMYSTRUCTNAME.AMS
Указывает используемый механизм арбитража.
Это поле может быть изменено, только если en очищается до 0
.
Программное обеспечение узла может задать для этого поля только поддерживаемые механизмы арбитража, как указано в поле AMSвозможности контроллера. Если для этого поля задано неподдерживаемое значение, поведение не определено.
DUMMYSTRUCTNAME.SHN
Задает значение NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS , которое используется для запуска обработки завершения работы при завершении работы. Например, если ожидается условие выключения питания.
Для обычного уведомления о завершении работы ожидается, что контроллеру будет предоставлено время для обработки уведомления о завершении работы. Для уведомления о внезапном завершении работы узел может не ждать завершения обработки завершения работы перед отключением питания. Это поле должно быть записано программным обеспечением узла до любого условия выключения питания и перед изменением состояния управления питанием PCI. Рекомендуется также записать это поле до горячей перезагрузки.
Чтобы определить, когда обработка завершена, см. значение SHST в разделе Состояние контроллера.
DUMMYSTRUCTNAME.IOSQES
Указывает размер записи очереди отправки ввода-вывода, которая используется для выбранного набора команд ввода-вывода.
Обязательные и максимальные значения для этого поля указываются в SQES. RequiredEntrySize и SQES. Поля MaxEntrySize структуры данных идентифицировать контроллер для каждого набора команд ввода-вывода. Значение имеет значение в байтах и указывается в виде двух значений (2^n).
DUMMYSTRUCTNAME.IOCQES
Указывает размер записи очереди завершения ввода-вывода, которая используется для выбранного набора команд ввода-вывода.
Обязательные и максимальные значения для этого поля указываются в CQES. RequiredEntrySize и CQES. Поля MaxEntrySize структуры данных идентифицировать контроллер для каждого набора команд ввода-вывода. Значение имеет значение в байтах и указывается в виде двух значений (2^n).
DUMMYSTRUCTNAME.Reserved1
AsUlong
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 |
Верхняя часть | nvme.h |