NVME_CONTROLLER_CONFIGURATION union (nvme.h)

包含控制器的讀取/寫入組態設定。

主機軟體會將下欄欄位設定為在啟用控制器之前的有效值,方法是將 [啟用 EN ] 域值設定為 1

這個結構用於NVME_CONTROLLER_REGISTERS結構的控制器功能 (CC) 欄位。

語法

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;

成員

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.EN

指出是否啟用控制器來處理命令。

當此值設定為 1 時,控制器會根據 提交佇列 Tail Doorbell 寫入來處理命令。 當此值清除為 0 時,控制器將不會處理命令,也不會將 完成佇列專案張貼至完成佇列

當此欄位從 1 轉換至 0 時,控制器會重設 (稱為控制器重設) 。 重設會刪除所有 I/O 提交佇列和 I/O 完成佇列、重設管理員提交佇列和完成佇列,並將硬體帶入閒置狀態。 重設不會影響 PCI Express 暫存器或管理員佇列暫存器 (AQA、ASQ 或 ACQ) 。 所有其他控制器註冊和內部控制器狀態 (例如,在電源狀態之間沒有持續性的功能值) 會重設為預設值。 控制器可確保在重設作業之前,已將對應的完成佇列專案張貼至 I/O 完成佇列的命令不會遺失任何資料。

清除此欄位 0 時,控制器狀態中 [就緒 (RDY) ] 欄位的值會在控制器準備好重新啟用之後,由控制器清除 0 。 當此欄位設定為 1 時,控制器會將 [控制器狀態1 ] 中RDY欄位的值設定為準備好處理命令時。 RDY 可以在 1 命名空間 () 準備好存取之前設定為 。

RDY1 時,請將此欄位從 0 設定為 1 ,或在RDY為 '0' 時將此欄位設定為 '0'時,將這個欄位設定為未定義的結果。 管理員佇列只會在清除EN0 時修改 (AQA、ASQ 和 ACQ) 。

DUMMYSTRUCTNAME.Reserved0

DUMMYSTRUCTNAME.CSS

指定要用於 I/O 提交佇列的 I/O 命令集。

主機軟體只會選取支援的 I/O 命令集,如控制器功能的CSS欄位中所示。

只有在停用控制器時,才能變更此欄位的這個值, ( 將 EN 欄位清除為 0) 。 選取的 I/O 命令集將用於所有 I/O 提交佇列。

DUMMYSTRUCTNAME.MPS

表示主機記憶體頁面大小。 記憶體頁面大小為 (2 ^ (12 + MPS)) 。 因此,最小主機記憶體頁面大小為 4KB,而主機記憶體頁面大小上限為 128MB。

主機軟體所設定的值必須是支援的值,如控制器功能的MPSMAXMPSMIN欄位所指出。 此欄位描述 PRP 專案大小所使用的值。

只有在 將 EN 清除為 0 時,才能修改此欄位。

DUMMYSTRUCTNAME.AMS

指定要使用的仲裁機制。

只有在 將 EN 清除為 0 時,才能修改此欄位。

主機軟體只能將此欄位設定為支援的仲裁機制,如控制器功能的AMS欄位所示。 如果此欄位設定為不支援的值,則行為未定義。

DUMMYSTRUCTNAME.SHN

指定 NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS 值,這個值可用來在發生關機時起始關機處理。 例如,當需要關閉電源條件時。

針對一般關機通知,預期控制器有時間處理關機通知。 針對突然關機通知,主機可能不會等待關機處理完成,才會遺失電源。 此欄位應該由主機軟體在關閉電源狀況之前,以及 PCI 電源管理狀態的任何變更之前寫入。 建議您在暖重新開機之前寫入此欄位。

若要判斷關閉處理何時完成,請參閱控制器狀態中的SHST值。

DUMMYSTRUCTNAME.IOSQES

指定用於所選 I/O 命令集的 I/O 提交佇列專案大小。

此欄位的必要值和最大值是在 SQES 中指定。RequiredEntrySizeSQES。 每個 I/O 命令集的 識別控制器 資料結構的 MaxEntrySize 欄位。 此值是以位元組為單位,並指定為兩個 (2^n) 的乘冪。

DUMMYSTRUCTNAME.IOCQES

指定用於所選 I/O 命令集的 I/O 完成佇列專案大小。

此欄位的必要值和最大值是在 CQES 中指定。RequiredEntrySizeCQES。 每個 I/O 命令集的 識別控制器 資料結構的 MaxEntrySize 欄位。 此值是以位元組為單位,並指定為兩個 (2^n) 的乘冪。

DUMMYSTRUCTNAME.Reserved1

AsUlong

需求

   
最低支援的用戶端 Windows 10
標頭 nvme.h