Condividi tramite


unione NVME_CONTROLLER_CONFIGURATION (nvme.h)

Contiene le impostazioni di configurazione di lettura/scrittura per il controller.

Il software host imposta i campi seguenti su valori validi prima di abilitare il controller impostando il valore del campo Enable EN su 1:

Questa struttura viene utilizzata nel campo Controller Capabilities (CC) della struttura NVME_CONTROLLER_REGISTERS .

Sintassi

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;

Members

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.EN

Indica se il controller è abilitato per elaborare i comandi.

Quando questo valore è impostato su 1, il controller elabora i comandi in base alle scritture taildoor della coda di invio . Quando questo valore viene cancellato su 0, il controller non elabora i comandi né le voci della coda di completamento nelle code di completamento.

Quando questo campo passa da 1 a 0, il controller viene reimpostato (definito reimpostazione controller). La reimpostazione elimina tutte le code di invio di I/O e le code di completamento di I/O, reimposta il Amministrazione coda di invio e coda di completamento e porta l'hardware a uno stato di inattività. La reimpostazione non influisce sui registri PCI Express o sui registri delle code di Amministrazione (AQA, ASQ o ACQ). Tutti gli altri registri controller e gli stati interni del controller (ad esempio, i valori delle funzionalità che non sono persistenti tra gli stati di alimentazione) vengono reimpostati sui valori predefiniti. Il controller garantisce che non siano presenti perdite di dati per i comandi con voci della coda di completamento corrispondenti registrate in una coda di completamento I/O prima dell'operazione di reimpostazione.

Quando questo campo viene cancellato su 0, il valore del campo Pronto (RDY) in Stato controller viene cancellato dal controller quando il controller è pronto per essere riabilitato 0 . Quando questo campo è impostato su 1, il controller imposta il valore del campo RDY in Stato controller su 1 quando è pronto per elaborare i comandi. RdY può essere impostato su 1 prima che gli spazi dei nomi siano pronti per l'accesso.

L'impostazione di questo campo da a 0 quando 1RDY è un 1oggetto o imposta questo campo da "1" a "0" quando RDY è un '0', ha risultati non definiti. I registri delle code Amministrazione (AQA, ASQ e ACQ) verranno modificati solo quando EN viene cancellato in 0.

DUMMYSTRUCTNAME.Reserved0

DUMMYSTRUCTNAME.CSS

Specifica il set di comandi di I/O selezionato per l'uso per le code di invio di I/O.

Il software host selezionerà solo un set di comandi di I/O supportato, come indicato nel campo CSSfunzionalità controller.

Questo valore di questo campo può essere modificato solo quando il controller è disabilitato ( il campo EN viene cancellato su 0). Il set di comandi di I/O selezionato verrà usato per tutte le code di invio di I/O.

DUMMYSTRUCTNAME.MPS

Indica le dimensioni della pagina della memoria host. Le dimensioni della pagina di memoria sono (2 ^ (12 + MPS)). Di conseguenza, le dimensioni minime della pagina di memoria host sono pari a 4 KB e la dimensione massima della pagina di memoria host è 128 MB.

Il valore impostato dal software host deve essere un valore supportato, come indicato dai campi MPSMAX e MPSMIN delle funzionalità del controller. Questo campo descrive il valore usato per le dimensioni delle voci PRP.

Questo campo può essere modificato solo quando EN viene cancellato in 0.

DUMMYSTRUCTNAME.AMS

Specifica il meccanismo di arbitrato da utilizzare.

Questo campo può essere modificato solo quando EN viene cancellato in 0.

Il software host può impostare questo campo solo sui meccanismi di arbitrato supportati, come indicato nel campo AMS funzionalità del controller. Se questo campo è impostato su un valore non supportato, il comportamento non è definito.

DUMMYSTRUCTNAME.SHN

Specifica un valore NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS utilizzato per avviare l'elaborazione dell'arresto quando si verifica un arresto. Ad esempio, quando è prevista una condizione di spegnimento.

Per una normale notifica di arresto, è previsto che al controller venga assegnato il tempo necessario per elaborare la notifica di arresto. Per una notifica di arresto improvviso, l'host potrebbe non attendere il completamento dell'elaborazione dell'arresto prima che l'alimentazione venga persa. Questo campo deve essere scritto in dal software host prima di qualsiasi condizione di spegnimento e prima di qualsiasi modifica dello stato di risparmio energia PCI. È consigliabile scrivere questo campo anche prima di un riavvio a caldo.

Per determinare quando l'elaborazione dell'arresto è stata completata, fare riferimento al valore SHST in Stato controller.

DUMMYSTRUCTNAME.IOSQES

Specifica le dimensioni di immissione della coda di invio di I/O utilizzate per il set di comandi di I/O selezionato.

I valori obbligatori e massimi per questo campo sono specificati in SQES. RequiredEntrySize e SQES. Campi MaxEntrySize della struttura dei dati del controller di identificazione per ogni set di comandi di I/O. Il valore è espresso in byte e viene specificato come potenza di due (2^n).

DUMMYSTRUCTNAME.IOCQES

Specifica le dimensioni di immissione della coda di completamento I/O utilizzate per il set di comandi di I/O selezionato.

I valori obbligatori e massimi per questo campo vengono specificati in CQES. RequiredEntrySize e CQES. Campi MaxEntrySize della struttura dei dati del controller di identificazione per ogni set di comandi di I/O. Il valore è espresso in byte e viene specificato come potenza di due (2^n).

DUMMYSTRUCTNAME.Reserved1

AsUlong

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Intestazione nvme.h