Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Contient les paramètres de configuration en lecture/écriture du contrôleur.
Le logiciel hôte définit les champs suivants sur des valeurs valides avant d’activer le contrôleur en définissant la valeur 1de champ Activer EN sur :
Cette structure est utilisée dans le champ Fonctionnalités du contrôleur (CC) de la structure NVME_CONTROLLER_REGISTERS .
Syntaxe
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
Indique si le contrôleur est activé pour traiter les commandes.
Lorsque cette valeur est définie 1, le contrôleur traite les commandes en fonction des écritures Queue Queue Doorbell de soumission .
Lorsque cette valeur est effacée 0, le contrôleur ne traite pas les commandes ni les entrées de file d’attente de saisie semi-automatique dans les files d’attente d’achèvement .
Lorsque ce champ passe de 1 , 0le contrôleur est réinitialisé (appelé Réinitialisation du contrôleur). La réinitialisation supprime toutes les files d’attente d’envoi d’E/S et les files d’attente d’achèvement d’E/S, réinitialise la file d’attente de soumission d’administration et la file d’attente d’achèvement, et met le matériel à l’état inactif. La réinitialisation n’affecte pas les registres PCI Express ou les registres de file d’attente d’administration (AQA, ASQ ou ACQ). Tous les autres registres de contrôleur et états internes du contrôleur (par exemple, les valeurs de fonctionnalité qui ne sont pas persistantes entre les états d’alimentation) sont réinitialisés à leurs valeurs par défaut. Le contrôleur garantit qu’il n’y a aucune perte de données pour les commandes qui ont affiché les entrées de file d’attente d’achèvement correspondantes dans une file d’attente d’E/S avant l’opération de réinitialisation.
Lorsque ce champ est effacé 0, la valeur du champ Prêt (RDY) dans l’état du contrôleur est effacée 0 par le contrôleur une fois que le contrôleur est prêt à être réactivé. Lorsque ce champ est défini 1sur , le contrôleur définit la valeur du champ RDY dans l’état1 du contrôleur lorsqu’il est prêt à traiter les commandes.
RdY peut être défini 1 sur avant que les espaces de noms soient prêts à être accessibles.
Définir ce champ d’un 0 à un 1 moment où RDY est un 1, ou définir ce champ d’un « 1 » sur un « 0 » lorsque RDY est un « 0 », a des résultats non définis. Les registres de file d’attente d’administration (AQA, ASQ et ACQ) ne seront modifiés que lorsque l’application EN est effacée 0.
DUMMYSTRUCTNAME.Reserved0
DUMMYSTRUCTNAME.CSS
Spécifie le jeu de commandes d’E/S sélectionné pour une utilisation pour les files d’attente de soumission d’E/S.
Le logiciel hôte sélectionne uniquement un jeu de commandes d’E/S pris en charge, comme indiqué dans le champ CSS des fonctionnalités du contrôleur.
Cette valeur de ce champ ne peut être modifiée que lorsque le contrôleur est désactivé (le champ EN est effacé ).0 Le jeu de commandes d’E/S sélectionné est utilisé pour toutes les files d’attente de soumission d’E/S.
DUMMYSTRUCTNAME.MPS
Indique la taille de la page de mémoire hôte. La taille de la page mémoire est (2 ^ (12 + MPS)). Ainsi, la taille minimale de la page de mémoire hôte est de 4 Ko et la taille maximale de la page de mémoire hôte est de 128 Mo.
La valeur définie par le logiciel hôte doit être une valeur prise en charge, comme indiqué par les champs MPSMAX et MPSMIN des fonctionnalités du contrôleur. Ce champ décrit la valeur utilisée pour la taille d’entrée PRP.
Ce champ ne peut être modifié que lorsque l’option EN est effacée 0.
DUMMYSTRUCTNAME.AMS
Spécifie le mécanisme d’arbitrage à utiliser.
Ce champ ne peut être modifié que lorsque l’option EN est effacée 0.
Le logiciel hôte ne peut définir ce champ que sur les mécanismes d’arbitrage pris en charge, comme indiqué dans le champ AMS des fonctionnalités du contrôleur. Si ce champ est défini sur une valeur non prise en charge, le comportement n’est pas défini.
DUMMYSTRUCTNAME.SHN
Spécifie une valeur NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS utilisée pour lancer le traitement d’arrêt lorsqu’un arrêt se produit. Par exemple, lorsqu’une condition de mise hors tension est attendue.
Pour une notification d’arrêt normale, il est prévu que le contrôleur soit donné le temps de traiter la notification d’arrêt. Pour une notification d’arrêt brusque, l’hôte peut ne pas attendre la fin du traitement de l’arrêt avant la perte de l’alimentation. Ce champ doit être écrit par un logiciel hôte avant toute condition de mise hors tension et avant toute modification de l’état de gestion de l’alimentation PCI. Il est recommandé que ce champ soit également écrit avant un redémarrage chaud.
Pour déterminer quand le traitement de l’arrêt est terminé, reportez-vous à la valeur SHST dans l’état du contrôleur.
DUMMYSTRUCTNAME.IOSQES
Spécifie la taille d’entrée de file d’attente de soumission d’E/S utilisée pour le jeu de commandes d’E/S sélectionné.
Les valeurs requises et maximales pour ce champ sont spécifiées dans SQES. RequiredEntrySize et SQES. Champs MaxEntrySize de la structure de données Identifier le contrôleur pour chaque jeu de commandes d’E/S. La valeur est en octets et est spécifiée sous la forme d’une puissance de deux (2^n).
DUMMYSTRUCTNAME.IOCQES
Spécifie la taille d’entrée de la file d’attente d’achèvement des E/S utilisée pour le jeu de commandes d’E/S sélectionné.
Les valeurs requises et maximales pour ce champ sont spécifiées dans le CQES. RequiredEntrySize et CQES. Champs MaxEntrySize de la structure de données Identifier le contrôleur pour chaque jeu de commandes d’E/S. La valeur est en octets et est spécifiée sous la forme d’une puissance de deux (2^n).
DUMMYSTRUCTNAME.Reserved1
AsUlong
Spécifications
| Requirement | Valeur |
|---|---|
| Client minimum requis | Windows 10 |
| Header | nvme.h |