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
命名空間 () 準備好存取之前設定為 。
當 RDY 為 1
時,請將此欄位從 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。
主機軟體所設定的值必須是支援的值,如控制器功能的MPSMAX 和 MPSMIN 欄位所指出。 此欄位描述 PRP 專案大小所使用的值。
只有在 將 EN 清除為 0
時,才能修改此欄位。
DUMMYSTRUCTNAME.AMS
指定要使用的仲裁機制。
只有在 將 EN 清除為 0
時,才能修改此欄位。
主機軟體只能將此欄位設定為支援的仲裁機制,如控制器功能的AMS欄位所示。 如果此欄位設定為不支援的值,則行為未定義。
DUMMYSTRUCTNAME.SHN
指定 NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS 值,這個值可用來在發生關機時起始關機處理。 例如,當需要關閉電源條件時。
針對一般關機通知,預期控制器有時間處理關機通知。 針對突然關機通知,主機可能不會等待關機處理完成,才會遺失電源。 此欄位應該由主機軟體在關閉電源狀況之前,以及 PCI 電源管理狀態的任何變更之前寫入。 建議您在暖重新啟動之前寫入此欄位。
若要判斷關閉處理何時完成,請參閱控制器狀態中的SHST值。
DUMMYSTRUCTNAME.IOSQES
指定用於所選 I/O 命令集的 I/O 提交佇列專案大小。
此欄位的必要值和最大值是在 SQES 中指定。RequiredEntrySize 和 SQES。 每個 I/O 命令集的 識別控制器 數據結構的 MaxEntrySize 字段。 此值是以位元組為單位,並指定為兩個 (2^n) 的乘冪。
DUMMYSTRUCTNAME.IOCQES
指定用於所選 I/O 命令集的 I/O 完成佇列專案大小。
此欄位的必要值和最大值是在 CQES 中指定。RequiredEntrySize 和 CQES。 每個 I/O 命令集的 識別控制器 數據結構的 MaxEntrySize 字段。 此值是以位元組為單位,並指定為兩個 (2^n) 的乘冪。
DUMMYSTRUCTNAME.Reserved1
AsUlong
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 |
標頭 | nvme.h |