SRBEX_DATA_NVME_COMMAND structure (srb.h)
La structure SRBEX_DATA_NVME_COMMAND permet à l’utilisateur de cadrer et d’émettre une commande au format NVMe. Cette structure est actuellement réservée à l’utilisation du système.
Syntaxe
typedef struct _SRBEX_DATA_NVME_COMMAND {
SRBEXDATATYPE Type;
ULONG Length;
union {
PVOID ControllerHandle;
ULONGLONG Reserved0;
};
union {
struct {
ULONG CommandDWORD0;
ULONG CommandNSID;
ULONG Reserved1[2];
ULONGLONG CommandMPTR;
union {
struct {
ULONGLONG CommandPRP1;
ULONGLONG CommandPRP2;
};
ULONGLONG CommandSGL1[2];
};
ULONG CommandCDW10;
ULONG CommandCDW11;
ULONG CommandCDW12;
ULONG CommandCDW13;
ULONG CommandCDW14;
ULONG CommandCDW15;
};
struct {
UCHAR OPC;
UCHAR PSDT;
USHORT CID;
UCHAR FCTYPE;
UCHAR Reserved[35];
UCHAR Specific[24];
} FabricsCommand;
struct {
ULONG OPC : 8;
ULONG FUSE : 2;
ULONG Reserved : 4;
ULONG PSDT : 2;
ULONG CID : 16;
UCHAR TypeSpecific[60];
} Command;
};
UCHAR CommandType;
UCHAR Reserved2;
USHORT CommandFlags;
USHORT ResponseFlags;
union {
struct {
USHORT P : 1;
USHORT SC : 8;
USHORT SCT : 3;
USHORT CRD : 2;
USHORT M : 1;
USHORT DNR : 1;
} DUMMYSTRUCTNAME;
USHORT AsUshort;
} CommandStatus;
ULONG QID;
ULONG CommandTag;
union {
struct {
ULONG CQEntryDW0;
ULONG CQEntryDW1;
};
UCHAR Specific[8];
};
USHORT SQHD;
USHORT SQID;
} SRBEX_DATA_NVME_COMMAND, *PSRBEX_DATA_NVME_COMMAND;
Membres
Type
Type de commande. Actuellement, cette valeur doit être définie sur SrbExDataTypeNvmeCommand.
Length
Taille de cette structure, en octets.
ControllerHandle
Poignée de Miniport pour le contrôleur NVMe.
Reserved0
Réservé ; ne pas utiliser.
CommandDWORD0
Commande Dword 0 dans la commande NVMe (consultez les spécifications NVMe).
CommandNSID
Identificateur d’espace de noms dans la commande NVMe (consultez les spécifications NVMe).
Reserved1[2]
CommandMPTR
Pointeur de métadonnées dans la commande NVMe (consultez les spécifications NVMe).
CommandPRP1
Page de région physique (PRP) Entrée 1 dans la commande NVMe (voir les spécifications NVMe). Pour indiquer que les informations prP sont présentes, l’utilisateur doit définir l’indicateur SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY de SRBEX_DATA_NVME_COMMAND_FLAG.
CommandPRP2
Entrée PRP 2 dans la commande NVMe (consultez les spécifications NVMe). Pour indiquer que les informations prP sont présentes, l’utilisateur doit définir l’indicateur SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY de SRBEX_DATA_NVME_COMMAND_FLAG.
CommandSGL1[2]
CommandCDW10
Dword 10 spécifique à la commande (voir les spécifications NVMe).
CommandCDW11
Dword 11 spécifique à la commande (voir les spécifications NVMe).
CommandCDW12
Dword 12 spécifique à la commande (voir les spécifications NVMe).
CommandCDW13
Dword 13 spécifique à la commande (voir les spécifications NVMe).
CommandCDW14
Dword 14 spécifique à la commande (voir les spécifications NVMe).
CommandCDW15
Dword 15 spécifique à la commande (consultez les spécifications NVMe).
FabricsCommand
NVMEOF_FABRICS_COMMAND dans nvme.h
FabricsCommand.OPC
Opcode (7Fh).
FabricsCommand.PSDT
PRP ou SGL pour le transfert de données. (seuls les bits 7 :6 sont utilisés, les autres sont réservés).
FabricsCommand.CID
Identificateur de commande Fabrics.
FabricsCommand.FCTYPE
Type de commande Fabrics.
FabricsCommand.Reserved[35]
FabricsCommand.Specific[24]
Command
Pour référencer la commande DW0 (consultez les spécifications NVMe).
Command.OPC
Opcode (OPC).
Command.FUSE
Fused Operation (FUSE).
Command.Reserved
Réservé ; ne pas utiliser.
Command.PSDT
PRP ou SGL pour le transfert de données.
Command.CID
Identificateur de commande.
Command.TypeSpecific[60]
CommandType
Valeur SRBEX_DATA_NVME_COMMAND_TYPE qui spécifie le type de commande NVMe.
Reserved2
Réservé ; ne pas utiliser.
CommandFlags
Valeur SRBEX_DATA_NVME_COMMAND_FLAG qui spécifie les propriétés de cette commande NVMe de données SRBEX.
ResponseFlags
Défini dans SRBEX_DATA_NVME_RESPONSE_FLAG.
CommandStatus
Champ État de l’entrée File d’attente d’achèvement (voir les spécifications NVMe).
CommandStatus.DUMMYSTRUCTNAME
Structure incorporée.
CommandStatus.DUMMYSTRUCTNAME.P
Balise de phase (P).
CommandStatus.DUMMYSTRUCTNAME.SC
Code d’état (SC).
CommandStatus.DUMMYSTRUCTNAME.SCT
Type de code d’état (SCT).
CommandStatus.DUMMYSTRUCTNAME.CRD
Délai de nouvelle tentative de commande (CRD).
CommandStatus.DUMMYSTRUCTNAME.M
Plus (M).
CommandStatus.DUMMYSTRUCTNAME.DNR
Ne réessayez pas (DNR).
CommandStatus.AsUshort
QID
ID de file d’attente spécifié par l’utilisateur (voir les spécifications NVMe). Si elle n’est pas spécifiée, définissez cette valeur sur 0xFFFFFFFF.
CommandTag
Identificateur unique spécifié par l’utilisateur pour l’identificateur de commande pour marquer une commande spécifique. Un utilisateur peut utiliser CommandTag pour suivre le résultat de la commande dans une trace ETW (Event Tracing for Windows) (par exemple, dans le journal de stockage de observateur d'événements).
CQEntryDW0
Entrée de file d’attente d’achèvement DW0.
CQEntryDW1
Entrée de file d’attente d’achèvement DW1.
Specific[8]
SQHD
Pointeur principal SQ dans l’entrée de la file d’attente d’achèvement.
SQID
Identificateur SQ.
Configuration requise
Condition requise | Valeur |
---|---|
Serveur minimal pris en charge | Windows Server 2022 |
En-tête | srb.h |