NVME_CDW10_CREATE_IO_QUEUE union (nvme.h)
包含建立 I/O 完成佇列和建立 IO 提交佇列命令中使用的參數。 [建立 I/O 完成佇列] 命令是用來建立所有 I/O 完成佇列,但管理員完成佇列除外,並使用 [建立 I/O 提交佇列] 命令來建立 I/O 提交佇列。
NVME_CDW10_CREATE_IO_QUEUE結構用於Command結構的CREATEIOCQ 和 CREATEIOSQ參數的CDW10欄位中。
語法
typedef union {
struct {
ULONG QID : 16;
ULONG QSIZE : 16;
} DUMMYSTRUCTNAME;
ULONG AsUlong;
} NVME_CDW10_CREATE_IO_QUEUE, *PNVME_CDW10_CREATE_IO_QUEUE;
成員
DUMMYSTRUCTNAME
DUMMYSTRUCTNAME.QID
[佇列識別碼 (QID) ] 欄位會指出要指派給要建立之完成佇列或提交佇列的識別碼。
此識別碼會對應至用於 完成佇列命令的完成佇列前端門鈴 ,或用於提交佇列命令的 提交佇列 Tail Doorbell 。
這個 16 位識別碼值不應超過 I/O 完成佇列或 I/O 提交佇列 之NVME_FEATURE_NUMBER_OF_QUEUES 功能中所報告的值。 如果指定的 0h
值為 ,超過回報的佇列數目,或對應至已在使用的識別碼,控制器應該會傳回 錯誤NVME_STATUS_INVALID_QUEUE_IDENTIFIER。
DUMMYSTRUCTNAME.QSIZE
[佇列大小 (QSIZE) ] 欄位會指出要建立的完成佇列或提交佇列的大小。 佇列大小會以 16 位 0 為基礎的欄位指出,指定佇列中的專案數目。
佇列的大小下限是兩個專案。 I/O 提交佇列或 I/O 完成佇列的大小上限為 64K 個專案,受限於NVME_CONTROLLER_CAPABILITIES結構 [支援的最大佇列專案] (MQES) 欄位中所報告的控制器所支援的佇列大小上限。
管理員提交和管理員完成佇列的大小上限定義為 4K 專案。 因為 Head 和 Tail 專案指標定義,所以無法使用每個佇列中的一個專案。
如果大小是 0h
或大於控制器支援,控制器應該會傳回 無效佇列大小的錯誤。
AsUlong
規格需求
最低支援的用戶端 | Windows 10 |
標頭 | nvme.h |