union NVME_CONTROLLER_CAPABILITIES (nvme.h)
Contient des valeurs en lecture seule qui spécifient les fonctionnalités de base du contrôleur pour héberger les logiciels.
Cette structure est utilisée dans le champ Capacités du contrôleur (CAP) de la structure NVME_CONTROLLER_REGISTERS .
Syntaxe
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;
Membres
DUMMYSTRUCTNAME
DUMMYSTRUCTNAME.MQES
Indique la taille de file d’attente individuelle maximale prise en charge par le contrôleur.
Cette valeur s’applique à chacune des files d’attente de soumission d’E/S et des files d’attente d’achèvement d’E/S créées par le logiciel hôte.
Il s’agit d’une valeur basée sur 0. La valeur minimale est 1h
, indiquant deux entrées de file d’attente.
DUMMYSTRUCTNAME.CQR
Indique si les files d’attente de soumission d’E/S et les files d’attente d’achèvement d’E/S doivent être physiquement contiguës par le contrôleur.
Lorsque ce champ est défini sur 1
, le contrôleur exige que les files d’attente de soumission d’E/S et les files d’attente d’achèvement d’E/S soient physiquement contiguës.
Lorsque ce champ est effacé 0
sur , le contrôleur prend en charge les files d’attente de soumission d’E/S et les files d’attente d’achèvement d’E/S qui ne sont pas physiquement contiguës.
Lorsque ce champ est défini sur 1
, le bit physiquement contigu (champ PC ) dans les commandes Créer une file d’attente de soumissions d’E/S et Créer une file d’attente d’achèvement d’E/S est défini sur 1
.
DUMMYSTRUCTNAME.AMS_WeightedRoundRobinWithUrgent
Indique si le mécanisme d’arbitrage Round Robin pondéré avec classe de priorité urgente est pris en charge par le contrôleur.
Lorsque ce champ est défini sur 1
, le mécanisme d’arbitrage Round Robin pondéré avec classe de priorité urgente est pris en charge.
Ces champs AMS_WeightedRoundRobinWithUrgent et AMS_VendorSpecific indiquent les mécanismes d’arbitrage facultatifs pris en charge par le contrôleur. Le mécanisme d’arbitrage par tourniquet n’est pas répertorié, car tous les contrôleurs doivent prendre en charge ce mécanisme d’arbitrage.
DUMMYSTRUCTNAME.AMS_VendorSpecific
Indique si le mécanisme d’arbitrage fournisseur spécifique est pris en charge par le contrôleur.
Lorsque ce champ est défini sur , le mécanisme d’arbitrage spécifique au 1
fournisseur est pris en charge.
DUMMYSTRUCTNAME.Reserved0
Un champ réservé (bits 19 à 23).
DUMMYSTRUCTNAME.TO
Indique le pire moment où le logiciel hôte attend la transition de la valeur Prêt (RDY) dans l’état du contrôleur :
-
0
à1
après la valeur EN dans NVME_CONTROLLER_CONFIGURATION transitions de0
à1
; ou -
1
après0
la valeur EN dans NVME_CONTROLLER_CONFIGURATION passe de1
à0
.
Ce pire moment peut être rencontré après des événements tels qu’un arrêt brusque ou l’activation d’une nouvelle image de microprogramme. Les heures typiques sont censées être beaucoup plus courtes.
La valeur de ce champ est exprimée en unités de 500 millisecondes.
DUMMYSTRUCTNAME.DSTRD
Indique la foulée entre les registres de sonnette.
Chaque registre de la file d’attente de soumission et de la file d’attente d’achèvement a une taille de 32 bits. La foulée est spécifiée en (2 ^ (2 + DSTRD))
octets.
La valeur indique 0h
une foulée de 4 octets, où les registres de sonnette sont emballés sans espace réservé entre chaque registre.
DUMMYSTRUCTNAME.NSSRS
Indique si le contrôleur prend en charge la fonctionnalité de réinitialisation du sous-système NVM définie dans la structure NVME_NVM_SUBSYSTEM_RESET .
Lorsque ce champ est défini sur 1
, le contrôleur prend en charge la fonctionnalité de réinitialisation du sous-système NVM.
Ce champ est effacé à 0
, le contrôleur ne prend pas en charge la fonctionnalité de réinitialisation du sous-système NVM.
DUMMYSTRUCTNAME.CSS_NVM
Ce champ indique si le jeu de commandes NVM est pris en charge par le contrôleur. Au moins un jeu de commandes doit être pris en charge.
Lorsque ce champ est défini sur 1
, l’ensemble de commandes NVM est pris en charge.
Les CSS_Reserved0 par CSS_Reserved6 champs sont réservés aux autres jeux de commandes d’E/S. Si la valeur de l’un de ces champs est définie sur 1
, le jeu de commandes d’E/S correspondant est pris en charge.
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
Indique la taille minimale de la page de mémoire de l’hôte prise en charge par le contrôleur.
La taille de page mémoire minimale est (2 ^ (12 + MPSMIN))
.
L’hôte ne configure pas une taille de page mémoire dans le champ MPS de NVME_CONTROLLER_CONFIGURATION qui est inférieure à cette valeur.
DUMMYSTRUCTNAME.MPSMAX
Indique la taille maximale de page de mémoire de l’hôte prise en charge par le contrôleur.
La taille maximale de la page mémoire est (2 ^ (12 + MPSMAX))
.
L’hôte ne configure pas de taille de page mémoire dans le champ MPS de NVME_CONTROLLER_CONFIGURATION supérieure à cette valeur.
DUMMYSTRUCTNAME.Reserved3
AsUlonglong
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 |
En-tête | nvme.h |