unione NVME_CONTROLLER_CAPABILITIES (nvme.h)

Contiene valori di sola lettura che specificano le funzionalità di base del controller per ospitare il software.

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

Sintassi

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;

Members

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.MQES

Indica la dimensione massima della coda supportata dal controller.

Questo valore si applica a ognuna delle code di invio di I/O e alle code di completamento di I/O create dal software host.

Si tratta di un valore basato su 0. Il valore minimo è 1h, che indica due voci della coda.

DUMMYSTRUCTNAME.CQR

Indica se le code di invio di I/O e le code di completamento di I/O sono richieste dal controller per essere fisicamente contigue.

Quando questo campo è impostato su 1, il controller richiede che le code di invio di I/O e le code di completamento I/O siano fisicamente contigue. Quando questo campo viene cancellato in 0, il controller supporta code di invio di I/O e code di completamento di I/O che non sono fisicamente contigue.

Quando questo campo è impostato su 1, il bit fisicamente contiguo (il campo PC ) nel comando Crea coda di invio I/O e Crea coda di completamento I/O è impostato su 1.

DUMMYSTRUCTNAME.AMS_WeightedRoundRobinWithUrgent

Indica se il meccanismo di arbitrato round robin ponderato con priorità urgente è supportato dal titolare del trattamento.

Quando questo campo è impostato su 1, è supportato il meccanismo di arbitrato round robin ponderato con priorità urgente.

Questi campi AMS_WeightedRoundRobinWithUrgent e AMS_VendorSpecific indicano i meccanismi di arbitrato facoltativi supportati dal titolare del trattamento. Il meccanismo di arbitrato round robin non è elencato perché tutti i titolari del trattamento devono supportare questo meccanismo di arbitrato.

DUMMYSTRUCTNAME.AMS_VendorSpecific

Indica se il meccanismo di arbitrato specifico del fornitore è supportato dal titolare del trattamento.

Quando questo campo è impostato su , è supportato il meccanismo di 1arbitrato specifico del fornitore.

DUMMYSTRUCTNAME.Reserved0

Campo riservato (bit da 19 a 23).

DUMMYSTRUCTNAME.TO

Indica il momento peggiore in cui il software host attenderà che il valore Pronto (RDY) in Stato controller passi da:

Questo caso peggiore può verificarsi dopo eventi come un arresto improvviso o l'attivazione di una nuova immagine del firmware. Si prevede che i tempi tipici siano molto più brevi.

Il valore di questo campo è espresso in unità di 500 millisecondi.

DUMMYSTRUCTNAME.DSTRD

Indica lo stride tra i registri del campanello.

Ogni registro della coda di invio e del campanello della coda di completamento è di 32 bit. Lo stride viene specificato come (2 ^ (2 + DSTRD)) in byte.

Il valore 0h indica uno stride di 4 byte, in cui i registri del campanello vengono compressi senza spazio riservato tra ogni registro.

DUMMYSTRUCTNAME.NSSRS

Indica se il controller supporta la funzionalità di reimpostazione del sottosistema NVM definita nella struttura NVME_NVM_SUBSYSTEM_RESET .

Quando questo campo è impostato su 1, il controller supporta la funzionalità di reimpostazione del sottosistema NVM. hen questo campo viene cancellato in 0, il controller non supporta la funzionalità di reimpostazione del sottosistema NVM.

DUMMYSTRUCTNAME.CSS_NVM

Questo campo indica se il set di comandi NVM è supportato dal controller. È necessario supportare almeno un set di comandi.

Quando questo campo è impostato su 1, il set di comandi NVM è supportato.

I campi CSS_Reserved0 tramite CSS_Reserved6 sono riservati ad altri set di comandi di I/O, se il valore di uno di questi campi è impostato su 1, è supportato il set di comandi di I/O corrispondente.

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

Indica le dimensioni minime della pagina di memoria host supportate dal controller.

La dimensione minima della pagina di memoria è (2 ^ (12 + MPSMIN)).

L'host non configurerà una dimensione della pagina di memoria nel campo MPS di NVME_CONTROLLER_CONFIGURATION minore di questo valore.

DUMMYSTRUCTNAME.MPSMAX

Indica le dimensioni massime della pagina di memoria host supportate dal controller.

La dimensione massima della pagina di memoria è (2 ^ (12 + MPSMAX)).

L'host non configurerà una dimensione della pagina di memoria nel campo MPS di NVME_CONTROLLER_CONFIGURATION maggiore di questo valore.

DUMMYSTRUCTNAME.Reserved3

AsUlonglong

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Intestazione nvme.h

Vedi anche