コントローラーの読み取り/書き込み構成設定が含まれています。
ホスト ソフトウェアは、[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 に設定すると、コントローラーは サブミッション キュー Tail Doorbell の書き込みに基づいてコマンドを処理します。
この値を 0にクリアすると、コントローラーはコマンドを処理したり 、完了キューのエントリを完了キュー にポストしたりすることはありません。
このフィールドが 1 から 0 に遷移すると、コントローラーはリセットされます (コントローラー リセットと呼ばれます)。 リセットにより、すべての I/O 送信キューと I/O 完了キューが削除され、管理者送信キューと完了キューがリセットされ、ハードウェアがアイドル状態になります。 リセットは PCI Express レジスタまたは管理キュー レジスタ (AQA、ASQ、または ACQ) には影響しません。 その他のすべてのコントローラー レジスタと内部コントローラーの状態 (電源状態をまたいで永続的ではないフィーチャー値など) は、既定値にリセットされます。 コントローラーは、リセット操作の前に対応する完了キュー エントリが I/O 完了キューにポストされたコマンドのデータ損失がないことを確認します。
このフィールドを0にクリアすると、コントローラーを再び有効にする準備ができたら、[コントローラーの状態] の [準備完了 ] (RDY) フィールドの値がクリアされ、コントローラーによって0されます。 このフィールドを 1 に設定すると、コントローラーはコマンドを処理する準備ができたときに、コントローラーの状態の RDY フィールドの値を1に設定します。
RDY は、名前空間にアクセスする準備が整う前に、 1 に設定できます。
RDY が1の場合は、このフィールドを0から1に設定するか、RDY が '0' の場合にこのフィールドを '1' から '0' に設定すると、未定義の結果になります。 管理キュー レジスタ (AQA、ASQ、ACQ) は、 EN が 0 にクリアされた場合にのみ変更されます。
DUMMYSTRUCTNAME.Reserved0
DUMMYSTRUCTNAME.CSS
I/O 送信キューで使用するために選択される I/O コマンド セットを指定します。
ホスト ソフトウェアは、コントローラー機能の CSS フィールドに示されているように、サポートされている I/O コマンド セットのみを選択します。
このフィールドのこの値は、コントローラーが無効になっている場合にのみ変更できます ( EN フィールドは 0 にクリアされます)。 選択した I/O コマンド セットは、すべての I/O 送信キューに使用されます。
DUMMYSTRUCTNAME.MPS
ホスト メモリのページ サイズを示します。 メモリ ページ サイズが (2 ^ (12 + MPS))。 したがって、最小ホスト メモリ ページ サイズは 4 KB、最大ホスト メモリ ページ サイズは 128 MB です。
ホスト ソフトウェアによって設定される値は、コントローラー機能の 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 の累乗 (2^n) として指定されます。
DUMMYSTRUCTNAME.IOCQES
選択した I/O コマンド セットに使用される I/O 完了キュー エントリ のサイズを指定します。
このフィールドの必須値と最大値は 、CQES で指定されます。RequiredEntrySize と CQES。 各 I/O コマンド セットの 識別コントローラー データ構造の MaxEntrySize フィールド。 値はバイト単位で、2 の累乗 (2^n) として指定されます。
DUMMYSTRUCTNAME.Reserved1
AsUlong
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows 10 |
| Header | nvme.h |