包含控制器的讀取/寫入組態設定。
主機軟體會在啟用控制器之前、將下列欄位設定為有效值、方法是將啟用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;
Members
DUMMYSTRUCTNAME
DUMMYSTRUCTNAME.EN
指出控制器是否已啟用處理命令。
當此值設定為 1時,控制器將根據 提交佇列尾門鈴 寫入來處理命令。
當此值清除為 0時,控制器將不會處理命令,也不會將 完成佇列項目 張貼至完成佇列。
當此欄位從 1 轉換為 0時,控制器會重設 (稱為控制器重設)。 重設會刪除所有 I/O 提交佇列和 I/O 完成佇列、重設管理提交佇列和完成佇列,並將硬體置於閒置狀態。 重設不會影響 PCI Express 暫存器或管理佇列暫存器 (AQA、ASQ 或 ACQ)。 所有其他控制器暫存器和內部控制器狀態 (例如,在電源狀態之間不持續存在的功能值) 都會重設為其預設值。 控制器可確保在重設作業之前,已將對應的「完成佇列」項目張貼至 I/O 完成佇列的命令不會遺失資料。
當此欄位清除為 0時,控制器會清除控制器狀態中的0就緒 (RDY) 欄位值,一旦控制器準備好重新啟用。 當此欄位設定為 1時,控制器會將控制器狀態中的 RDY 欄位值設定為1準備好處理命令的時間。
RDY 可以在命名空間準備好存取之前設定為 1 。
當 RDY 為 a 1時,將此欄位從 a 0 設定為 a1,或當 RDY 為 '0' 時,將此欄位從 '1' 設定為 '0',會產生未定義的結果。 只有在 EN 清除為 0時,才會修改管理佇列暫存器 (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。MaxEntrySize 每個 I/O 命令集的 識別控制器 資料結構的欄位。 該值以位元組為單位,並指定為 2 的冪 (2^n)。
DUMMYSTRUCTNAME.IOCQES
指定用於所選「I/O 指令集」的「I/O 完成佇列」項目大小。
此欄位的必要值及最大值會在 CQES 中指定。RequiredEntrySize 和 CQES。MaxEntrySize 每個 I/O 命令集的 識別控制器 資料結構的欄位。 該值以位元組為單位,並指定為 2 的冪 (2^n)。
DUMMYSTRUCTNAME.Reserved1
AsUlong
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows 10 |
| Header | nvme.h |