SRBEX_DATA_NVME_COMMAND structure (srb.h)
The SRBEX_DATA_NVME_COMMAND structure enables the user to frame and issue a command in NVMe format. This structure is currently reserved for system use.
Syntax
typedef struct _SRBEX_DATA_NVME_COMMAND {
SRBEXDATATYPE Type;
ULONG Length;
ULONG CommandDWORD0;
ULONG CommandNSID;
ULONG Reserved0[2];
ULONGLONG CommandMPTR;
ULONGLONG CommandPRP1;
ULONGLONG CommandPRP2;
ULONG CommandCDW10;
ULONG CommandCDW11;
ULONG CommandCDW12;
ULONG CommandCDW13;
ULONG CommandCDW14;
ULONG CommandCDW15;
UCHAR CommandType;
UCHAR CommandFlags;
union {
struct {
USHORT P : 1;
USHORT SC : 8;
USHORT SCT : 3;
USHORT Reserved : 2;
USHORT M : 1;
USHORT DNR : 1;
} DUMMYSTRUCTNAME;
USHORT AsUshort;
} CommandStatus;
ULONG QID;
ULONG CommandTag;
ULONG CQEntryDW0;
} SRBEX_DATA_NVME_COMMAND, *PSRBEX_DATA_NVME_COMMAND;
Members
Type
Command type. Currently this must be set to SrbExDataTypeNvmeCommand.
Length
Size of this structure, in bytes.
CommandDWORD0
Command Dword 0 within the NVMe command (see the NVMe specification).
CommandNSID
Namespace identifier within the NVMe command (see the NVMe specification).
Reserved0[2]
Reserved; do not use.
CommandMPTR
Metadata pointer within the NVMe command (see the NVMe specification).
CommandPRP1
Physical region page (PRP) Entry 1 within the NVMe command (see the NVMe spec). To indicate that PRP information is present, the user must set the SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY flag of SRBEX_DATA_NVME_COMMAND_FLAG.
CommandPRP2
PRP Entry 2 within the NVMe command (see the NVMe spec). To indicate that PRP information is present, the user must set the SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY flag of SRBEX_DATA_NVME_COMMAND_FLAG.
CommandCDW10
Command-specific Dword 10 (see the NVMe spec).
CommandCDW11
Command-specific Dword 11 (see the NVMe spec).
CommandCDW12
Command-specific Dword 12 (see the NVMe spec).
CommandCDW13
Command-specific Dword 13 (see the NVMe spec).
CommandCDW14
Command-specific Dword 14 (see the NVMe spec).
CommandCDW15
Command-specific Dword 15 (see the NVMe spec).
CommandType
A SRBEX_DATA_NVME_COMMAND_TYPE value that specifies the NVMe command type.
CommandFlags
A SRBEX_DATA_NVME_COMMAND_FLAG value that specifies the properties of this SRBEX data NVMe command.
CommandStatus
Status field from the Completion Queue entry (see the NVMe spec).
CommandStatus.DUMMYSTRUCTNAME
CommandStatus.DUMMYSTRUCTNAME.P
Phase tag (P).
CommandStatus.DUMMYSTRUCTNAME.SC
Status code (SC).
CommandStatus.DUMMYSTRUCTNAME.SCT
Status code type (SCT).
CommandStatus.DUMMYSTRUCTNAME.Reserved
Reserved.
CommandStatus.DUMMYSTRUCTNAME.M
More (M).
CommandStatus.DUMMYSTRUCTNAME.DNR
Do not retry (DNR).
CommandStatus.AsUshort
QID
User-specified queue ID (see the NVMe spec). If unspecified, set this value to 0xFFFFFFFF.
CommandTag
Unique, user-specified identifier for the command identifier to mark a specific command. A user can use CommandTag to trace the result of the command in an Event Tracing for Windows (ETW) trace (for example, in Event Viewer's Storage log).
CQEntryDW0
Completion queue entry DW0.
Requirements
Requirement | Value |
---|---|
Minimum supported server | Windows Server 2022 |
Header | srb.h |
See also
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for