NVME_CONTROLLER_CONFIGURATION 공용 구조체(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가 인 경우 이 필드를 에서 0
로 1
설정하거나 RDY1
가 '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))
. 따라서 최소 호스트 메모리 페이지 크기는 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(2^n)의 전원으로 지정됩니다.
DUMMYSTRUCTNAME.IOCQES
선택한 I/O 명령 집합에 사용되는 I/O 완료 큐 항목 크기를 지정합니다.
이 필드에 필요한 값과 최대값은 CQES에 지정됩니다. RequiredEntrySize 및 CQES. 각 I/O 명령 집합에 대한 컨트롤러 식별 데이터 구조의 MaxEntrySize 필드입니다. 값은 바이트 단위이며 2(2^n)의 전원으로 지정됩니다.
DUMMYSTRUCTNAME.Reserved1
AsUlong
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 |
머리글 | nvme.h |