Partager via


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 des 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;

Members

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.MQES

Indique la taille maximale de file d’attente individuelle prise en charge par le contrôleur.

Cette valeur s’applique à chacune des files d’attente de soumission d’E/S et aux files d’attente d’achèvement d’E/S créées par le logiciel hôte.

Il s’agit d’une valeur de base de 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 sont requises par le contrôleur pour qu’elles soient physiquement contiguës.

Lorsque ce champ est défini 1sur , le contrôleur requiert que les files d’attente d’envoi d’E/S et les files d’attente d’achèvement des E/S soient physiquement contiguës. Lorsque ce champ est effacé 0, 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 1sur , le bit physiquement contigu (champ PC ) dans la file d’attente créer une soumission d’E/S et les commandes Créer une file d’attente d’achèvement d’E/S sont définies 1sur .

DUMMYSTRUCTNAME.AMS_WeightedRoundRobinWithUrgent

Indique si le tourniquet pondéré avec un mécanisme d’arbitrage de classe prioritaire urgent est pris en charge par le contrôleur.

Lorsque ce champ est défini 1sur , le tourniquet pondéré avec un mécanisme d’arbitrage de classe prioritaire urgent 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 de tourniquet n’est pas répertorié, car tous les contrôleurs doivent soutenir ce mécanisme d’arbitrage.

DUMMYSTRUCTNAME.AMS_VendorSpecific

Indique si le mécanisme d’arbitrage spécifique au fournisseur est pris en charge par le contrôleur.

Lorsque ce champ est défini 1sur , le mécanisme d’arbitrage spécifique au fournisseur est pris en charge.

DUMMYSTRUCTNAME.Reserved0

Champ réservé (bits 19 à 23).

DUMMYSTRUCTNAME.TO

Indique le pire moment où le logiciel hôte attend la valeur Ready (RDY) dans l’état du contrôleur pour passer de :

Ce pire cas de temps peut être rencontré après des événements tels qu’un arrêt brusque ou l’activation d’une nouvelle image de microprogramme. Les temps typiques sont censés être beaucoup plus courts.

La valeur de ce champ est en 500 millisecondes.

DUMMYSTRUCTNAME.DSTRD

Indique le pas entre les registres de porte d’entrée.

Chaque registre queue de soumission et file d’attente de saisie semi-automatique est de taille de 32 bits. La progression est spécifiée en (2 ^ (2 + DSTRD)) octets.

Une valeur indiquant 0h une progression de 4 octets, où les registres doorbell 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 1sur , le contrôleur prend en charge la fonctionnalité de réinitialisation du sous-système NVM. hen this field is cleared to 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. Un jeu de commandes minimum doit être pris en charge.

Lorsque ce champ est défini 1sur , le jeu de commandes NVM est pris en charge.

Les CSS_Reserved0 via CSS_Reserved6 champs sont réservés à d’autres jeux de commandes d’E/S, si la valeur de l’un de ces champs est définie 1sur , 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 hôte prise en charge par le contrôleur.

La taille minimale de la page de mémoire est (2 ^ (12 + MPSMIN)).

L’hôte ne configure pas de taille de page mémoire dans le champ MPS de NVME_CONTROLLER_CONFIGURATION inférieure à cette valeur.

DUMMYSTRUCTNAME.MPSMAX

Indique la taille maximale de la page de mémoire 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

Spécifications

Requirement Valeur
Client minimum requis Windows 10
Header nvme.h

Voir aussi