unión NVME_CONTROLLER_CONFIGURATION (nvme.h)

Contiene opciones de configuración de lectura y escritura para el controlador.

El software host establece los siguientes campos en valores válidos antes de habilitar el controlador estableciendo el valor del campo Habilitar EN en 1:

Esta estructura se usa en el campo Capacidades del controlador (CC) de la estructura NVME_CONTROLLER_REGISTERS .

Sintaxis

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;

Miembros

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.EN

Indica si el controlador está habilitado para procesar comandos.

Cuando este valor se establece 1en , el controlador procesará comandos basados en escrituras de cola de cola de envío. Cuando se borra este valor en 0, el controlador no procesará comandos ni entradas posteriores a la cola de finalización en Colas de finalización.

Cuando este campo pasa de 1 a 0, el controlador se restablece (denominado Restablecimiento del controlador). El restablecimiento elimina todas las colas de envío de E/S y las colas de finalización de E/S, restablece el Administración cola de envío y cola de finalización, y lleva el hardware a un estado inactivo. El restablecimiento no afecta a los registros de PCI Express ni a los registros de cola de Administración (AQA, ASQ o ACQ). Todos los demás registros del controlador y los estados del controlador interno (por ejemplo, valores de características que no son persistentes entre estados de energía) se restablecen a sus valores predeterminados. El controlador garantiza que no haya pérdida de datos para los comandos que hayan tenido entradas correspondientes de cola de finalización publicadas en una cola de finalización de E/S antes de la operación de restablecimiento.

Cuando este campo se borra en 0, el controlador borra el valor del campo Listo (RDY) en Estado del controlador una vez que el controlador está listo para volver a 0 habilitarse. Cuando este campo se establece 1en , el controlador establece el valor del campo RDY en Estado1 del controlador en cuando está listo para procesar comandos. Se puede establecer RDY en 1 antes de que se pueda acceder a los espacios de nombres.

Establecer este campo de en 0 un 1 cuando RDY es , 1o establecer este campo de un "1" en "0" cuando RDY es "0", tiene resultados indefinidos. Los registros de Administración Queue (AQA, ASQ y ACQ) solo se modificarán cuando EN se borre en 0.

DUMMYSTRUCTNAME.Reserved0

DUMMYSTRUCTNAME.CSS

Especifica el conjunto de comandos de E/S seleccionado para su uso para las colas de envío de E/S.

El software host solo seleccionará un conjunto de comandos de E/S compatible, como se indica en el campo CSS de Capacidades del controlador.

Este valor de este campo solo se puede cambiar cuando el controlador está deshabilitado (el campo EN se borra en 0). El conjunto de comandos de E/S seleccionado se usará para todas las colas de envío de E/S.

DUMMYSTRUCTNAME.MPS

Indica el tamaño de página de memoria del host. El tamaño de página de memoria es (2 ^ (12 + MPS)). Por lo tanto, el tamaño de página de memoria de host mínimo es de 4 KB y el tamaño máximo de página de memoria del host es de 128 MB.

El valor establecido por software host debe ser un valor admitido como se indica en los campos MPSMAX y MPSMIN de Capacidades del controlador. En este campo se describe el valor usado para el tamaño de entrada prp.

Este campo solo se puede modificar cuando EN está desactivado en 0.

DUMMYSTRUCTNAME.AMS

Especifica el mecanismo de arbitraje que se va a usar.

Este campo solo se puede modificar cuando EN está desactivado en 0.

El software host solo puede establecer este campo en mecanismos de arbitraje admitidos, como se indica en el campo AMS de capacidades del controlador. Si este campo se establece en un valor no admitido, el comportamiento no está definido.

DUMMYSTRUCTNAME.SHN

Especifica un valor de NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS que se usa para iniciar el procesamiento de apagado cuando se produce un apagado. Por ejemplo, cuando se espera una condición de apagado.

Para una notificación de apagado normal, se espera que el controlador tenga tiempo de procesar la notificación de apagado. Para una notificación de cierre abrupto, es posible que el host no espere a que se complete el procesamiento de apagado antes de que se pierda la alimentación. Este campo debe escribirse en el software host antes de cualquier condición de apagado y antes de cualquier cambio del estado de administración de energía PCI. Se recomienda que este campo también se escriba en antes de un reinicio intermedio.

Para determinar cuándo se completa el procesamiento de apagado, consulte el valor SHST en Estado del controlador.

DUMMYSTRUCTNAME.IOSQES

Especifica el tamaño de entrada de la cola de envío de E/S que se usa para el conjunto de comandos de E/S seleccionado.

Los valores requeridos y máximos para este campo se especifican en SQES. RequiredEntrySize y SQES. Campos MaxEntrySize de la estructura de datos Identificar controlador para cada conjunto de comandos de E/S. El valor está en bytes y se especifica como una potencia de dos (2^n).

DUMMYSTRUCTNAME.IOCQES

Especifica el tamaño de entrada de la cola de finalización de E/S que se usa para el conjunto de comandos de E/S seleccionado.

Los valores requeridos y máximos para este campo se especifican en el CQES. RequiredEntrySize y CQES. Campos MaxEntrySize de la estructura de datos Identificar controlador para cada conjunto de comandos de E/S. El valor está en bytes y se especifica como una potencia de dos (2^n).

DUMMYSTRUCTNAME.Reserved1

AsUlong

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10
Encabezado nvme.h