Compartilhar via


NVME_CONTROLLER_CONFIGURATION união (nvme.h)

Contém configurações de leitura/gravação para o controlador.

O software host define os seguintes campos como valores válidos antes de habilitar o controlador definindo o valor do campo Habilitar EN como 1:

Essa estrutura é usada no campo Recursos do Controlador (CC) da estrutura NVME_CONTROLLER_REGISTERS .

Sintaxe

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;

Membros

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.EN

Indica se o controlador está habilitado para processar comandos.

Quando esse valor for definido como 1, o controlador processará comandos com base nas gravações de Tail Doorbell da Fila de Envio . Quando esse valor for limpo para 0, o controlador não processará comandos nem postará entradas da Fila de Conclusão em Filas de Conclusão.

Quando esse campo faz a transição de 1 para 0, o controlador é redefinido (chamado de Redefinição do Controlador). A redefinição exclui todas as Filas de Envio de E/S e Filas de Conclusão de E/S, redefine o Administração Fila de Envio e Fila de Conclusão e leva o hardware para um estado ocioso. A redefinição não afeta os registros do PCI Express ou os registros de fila de Administração (AQA, ASQ ou ACQ). Todos os outros registros de controlador e estados internos do controlador (como, Valores de recurso que não são persistentes entre estados de energia) são redefinidos para seus valores padrão. O controlador garante que não haja perda de dados para comandos que tiveram entradas de Fila de Conclusão correspondentes postadas em uma Fila de Conclusão de E/S antes da operação de redefinição.

Quando esse campo é limpo para 0, o valor do campo Pronto (RDY) no Status do Controlador é limpo 0 para pelo controlador depois que o controlador está pronto para ser habilitado novamente. Quando esse campo é definido como 1, o controlador define o valor do campo RDY no Status do Controlador como 1 quando ele está pronto para processar comandos. O RDY pode ser definido como 1 antes que os namespaces estejam prontos para serem acessados.

Definir esse campo de um 0 para um 1 quando RDY é um 1ou definir esse campo de um '1' para um '0' quando RDY for um '0', tem resultados indefinidos. Os registros de fila de Administração (AQA, ASQ e ACQ) só serão modificados quando o EN for limpo para 0.

DUMMYSTRUCTNAME.Reserved0

DUMMYSTRUCTNAME.CSS

Especifica o Conjunto de Comandos de E/S selecionado para uso para as Filas de Envio de E/S.

O software host selecionará apenas um Conjunto de Comandos de E/S com suporte, conforme indicado no campo CSS de Recursos do Controlador.

Esse valor desse campo só pode ser alterado quando o controlador está desabilitado ( o campo EN é limpo para 0). O Conjunto de Comandos de E/S selecionado será usado para todas as Filas de Envio de E/S.

DUMMYSTRUCTNAME.MPS

Indica o tamanho da página de memória do host. O tamanho da página de memória é (2 ^ (12 + MPS)). Portanto, o tamanho mínimo da página de memória do host é 4KB e o tamanho máximo da página de memória do host é de 128 MB.

O valor definido pelo software host deve ser um valor com suporte, conforme indicado pelos campos MPSMAX e MPSMIN de Recursos do Controlador. Este campo descreve o valor usado para o tamanho da entrada PRP.

Esse campo só pode ser modificado quando EN é limpo para 0.

DUMMYSTRUCTNAME.AMS

Especifica o mecanismo de arbitragem a ser usado.

Esse campo só pode ser modificado quando EN é limpo para 0.

O software host só pode definir esse campo para mecanismos de arbitragem com suporte, conforme indicado no campo AMS de Recursos do Controlador. Se esse campo for definido como um valor sem suporte, o comportamento será indefinido.

DUMMYSTRUCTNAME.SHN

Especifica um valor NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS usado para iniciar o processamento de desligamento quando um desligamento está ocorrendo. Por exemplo, quando uma condição de desligar é esperada.

Para uma notificação de desligamento normal, espera-se que o controlador tenha tempo para processar a notificação de desligamento. Para uma notificação de desligamento abrupta, o host pode não esperar que o processamento de desligamento seja concluído antes que a energia seja perdida. Esse campo deve ser gravado por software host antes de qualquer condição de desligar e antes de qualquer alteração do estado de gerenciamento de energia PCI. É recomendável que esse campo também seja gravado antes de uma reinicialização calorosa.

Para determinar quando o processamento de desligamento foi concluído, consulte o valor SHST em Status do Controlador.

DUMMYSTRUCTNAME.IOSQES

Especifica o tamanho da entrada fila de envio de E/S que é usado para o Conjunto de Comandos de E/S selecionado.

Os valores necessários e máximos para esse campo são especificados no SQES. RequiredEntrySize e SQES. Campos MaxEntrySize da estrutura de dados Identifi Controller para cada Conjunto de Comandos de E/S. O valor está em bytes e é especificado como uma potência de dois (2^n).

DUMMYSTRUCTNAME.IOCQES

Especifica o tamanho da entrada fila de conclusão de E/S que é usado para o Conjunto de Comandos de E/S selecionado.

Os valores necessários e máximos para esse campo são especificados no CQES. RequiredEntrySize e CQES. Campos MaxEntrySize da estrutura de dados Identifi Controller para cada Conjunto de Comandos de E/S. O valor está em bytes e é especificado como uma potência de dois (2^n).

DUMMYSTRUCTNAME.Reserved1

AsUlong

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Cabeçalho nvme.h