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 1
arbitrato 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:
-
0
a1
dopo il valore EN in NVME_CONTROLLER_CONFIGURATION passa da0
a1
; o -
1
a0
dopo il valore EN in NVME_CONTROLLER_CONFIGURATION passa da1
a0
.
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 |