SEt feature
时间: 2023-08-31 20:10:52 浏览: 60
在控制器中设置一个Feature时,有几个情况需要考虑。首先,如果控制器不支持该Feature的可变值,即该Feature是不可更改的,那么根据命令中指定的Feature值与当前值是否相同,控制器有两种行为选择。如果指定的Feature值与当前值不同,控制器将中止该命令并返回状态码"Feature Not Changeable";如果指定的Feature值与当前值相同,控制器可以选择成功完成该Set Features命令或中止命令并返回"Feature Not Changeable"状态码。
在完成设置Feature的Set Features命令后,主机应该重新发现、重新列举和/或重新初始化与该Feature相关的所有capabilities。这是因为设置Feature可能导致相关的命名空间能力发生变化,所以主机软件应暂停使用任何相关的命名空间,并等待Set Features命令完成后,重新向受该命令影响的所有命名空间发出命令。这样可以确保新的Feature设置适用于所有后续命令。
Figure 316定义了可以使用Set Features命令配置和使用Get Features命令检索的features。不同类型的控制器可能有不同的强制、可选和禁止的features,具体信息可以参考相关文档。一些features使用内存缓冲区来配置或返回属性,而其他features仅使用命令或完成队列中的一个dword。如果某个Feature在电源断电或复位时不是持久的,那么作为控制器级复位的一部分,该Feature的当前值应该被设置为默认值。关于Features的更多信息,包括默认值、保存值和当前值的定义,可以参考相关章节。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [【NVMe2.0b 14-7】Set Features(上篇)](https://blog.csdn.net/BGONE/article/details/125509919)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]