다음을 통해 공유


NVME_STATUS_COMMAND_SPECIFIC_CODES 열거형(nvme.h)

특정 명령과 관련된 상태를 나타내는 값을 포함합니다.

이러한 상태 코드는 NVME_STATUS_TYPE_COMMAND_SPECIFIC상태 코드 형식 있으며 명령이 완료되면 컨트롤러가 완료 큐 항목 게시합니다.

통사론

typedef enum {
  NVME_STATUS_COMPLETION_QUEUE_INVALID,
  NVME_STATUS_INVALID_QUEUE_IDENTIFIER,
  NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDED,
  NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDED,
  NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDED,
  NVME_STATUS_INVALID_FIRMWARE_SLOT,
  NVME_STATUS_INVALID_FIRMWARE_IMAGE,
  NVME_STATUS_INVALID_INTERRUPT_VECTOR,
  NVME_STATUS_INVALID_LOG_PAGE,
  NVME_STATUS_INVALID_FORMAT,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESET,
  NVME_STATUS_INVALID_QUEUE_DELETION,
  NVME_STATUS_FEATURE_ID_NOT_SAVEABLE,
  NVME_STATUS_FEATURE_NOT_CHANGEABLE,
  NVME_STATUS_FEATURE_NOT_NAMESPACE_SPECIFIC,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_NVM_SUBSYSTEM_RESET,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_RESET,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATION,
  NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITED,
  NVME_STATUS_OVERLAPPING_RANGE,
  NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITY,
  NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLE,
  NVME_STATUS_NAMESPACE_ALREADY_ATTACHED,
  NVME_STATUS_NAMESPACE_IS_PRIVATE,
  NVME_STATUS_NAMESPACE_NOT_ATTACHED,
  NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED,
  NVME_STATUS_CONTROLLER_LIST_INVALID,
  NVME_STATUS_DEVICE_SELF_TEST_IN_PROGRESS,
  NVME_STATUS_BOOT_PARTITION_WRITE_PROHIBITED,
  NVME_STATUS_INVALID_CONTROLLER_IDENTIFIER,
  NVME_STATUS_INVALID_SECONDARY_CONTROLLER_STATE,
  NVME_STATUS_INVALID_NUMBER_OF_CONTROLLER_RESOURCES,
  NVME_STATUS_INVALID_RESOURCE_IDENTIFIER,
  NVME_STATUS_SANITIZE_PROHIBITED_ON_PERSISTENT_MEMORY,
  NVME_STATUS_INVALID_ANA_GROUP_IDENTIFIER,
  NVME_STATUS_ANA_ATTACH_FAILED,
  NVME_IO_COMMAND_SET_NOT_SUPPORTED,
  NVME_IO_COMMAND_SET_NOT_ENABLED,
  NVME_IO_COMMAND_SET_COMBINATION_REJECTED,
  NVME_IO_COMMAND_SET_INVALID,
  NVME_STATUS_STREAM_RESOURCE_ALLOCATION_FAILED,
  NVME_STATUS_ZONE_INVALID_FORMAT,
  NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES,
  NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION,
  NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGE,
  NVME_STATUS_NVM_COMMAND_SIZE_LIMIT_EXCEEDED,
  NVME_STATUS_ZONE_BOUNDARY_ERROR,
  NVME_STATUS_ZONE_FULL,
  NVME_STATUS_ZONE_READ_ONLY,
  NVME_STATUS_ZONE_OFFLINE,
  NVME_STATUS_ZONE_INVALID_WRITE,
  NVME_STATUS_ZONE_TOO_MANY_ACTIVE,
  NVME_STATUS_ZONE_TOO_MANY_OPEN,
  NVME_STATUS_ZONE_INVALID_STATE_TRANSITION
} NVME_STATUS_COMMAND_SPECIFIC_CODES;

상수

 
NVME_STATUS_COMPLETION_QUEUE_INVALID
I/O 제출 큐 만들기 명령에 지정된 완료 큐 식별자가 없습니다.
NVME_STATUS_INVALID_QUEUE_IDENTIFIER
이러한 명령에 대한 다음 상태를 나타냅니다.

- I/O 제출 큐 만들기: 명령의 일부로 지정된 잘못된 큐 식별자로 인해 I/O 제출 큐를 만들지 못했습니다. 잘못된 큐 식별자는 현재 사용 중인 식별자이거나 컨트롤러에서 지원하는 범위를 벗어난 식별자입니다.
- I/O 제출 큐 삭제: 명령에 지정된 큐 식별자가 잘못되었습니다. 이 오류는 관리자 완료 큐 식별자가 지정된 경우에도 표시됩니다.
- I/O 완료 큐 만들기: 명령의 일부로 지정된 잘못된 큐 식별자로 인해 I/O 완료 큐를 만들지 못했습니다. 잘못된 큐 식별자는 현재 사용 중인 식별자이거나 컨트롤러에서 지원하는 범위를 벗어난 식별자입니다.
- I/O 완료 큐 삭제: 명령에 지정된 큐 식별자가 잘못되었습니다. 이 오류는 관리자 완료 큐 식별자가 지정된 경우에도 표시됩니다.
NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDED
I/O 제출 큐 만들기 및 I/O 완성 큐 만들기 명령에 대한 다음 상태를 나타냅니다.

호스트가 잘못된 수의 항목을 사용하여 I/O 완료 큐를 만들려고 했습니다. 예를 들어 값이 0이거나 NVME_CONTROLLER_CAPABILITIES 구조체의 MQES 필드에 지정된 컨트롤러에서 지원하는 최대값을 초과하는 값입니다.
NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDED
동시 미해결 중단 명령 수가 컨트롤러 식별 데이터 구조ACL 필드에 표시된 제한을 초과했습니다.
NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDED
동시에 미해결된 비동기 이벤트 요청 명령 수가 초과되었습니다.
NVME_STATUS_INVALID_FIRMWARE_SLOT
펌웨어 커밋 명령에 표시된 펌웨어 슬롯이 잘못되었거나 읽기 전용입니다. 이 오류는 펌웨어 슬롯이 지원되는 수를 초과하는지 여부를 나타냅니다.
NVME_STATUS_INVALID_FIRMWARE_IMAGE
펌웨어 커밋 명령에서 활성화를 위해 지정된 펌웨어 이미지가 잘못되었으며 컨트롤러에 의해 로드되지 않았습니다.
NVME_STATUS_INVALID_INTERRUPT_VECTOR
I/O 완료 큐 만들기 명령의 일부로 지정된 잘못된 인터럽트 벡터로 인해 I/O 완료 큐를 만들지 못했습니다.
NVME_STATUS_INVALID_LOG_PAGE
로그 페이지 가져오기 명령에 표시된 로그 페이지가 잘못되었습니다. 예약된 로그 페이지가 요청된 경우에도 이 오류 조건이 반환됩니다.
NVME_STATUS_INVALID_FORMAT
형식 NVM 명령에 대한 다음 상태를 나타냅니다. 지정된 형식이 잘못되었습니다.

이는 다음과 같은 다양한 조건 때문일 수 있습니다.

- 잘못된 LBA(논리 블록 주소) 형식 번호를 지정합니다.
- LBA당 메타데이터가 충분하지 않은 경우 보호 정보를 사용하도록 설정합니다.
- 잘못된 보안 상태입니다. 자세한 내용은 TCG SIIS(스토리지 인터페이스 상호 작용 사양)참조하세요.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESET
펌웨어 커밋 명령에 대한 다음 상태를 나타냅니다.

펌웨어 커밋에 성공했습니다. 그러나 펌웨어 이미지를 활성화하려면 기존 재설정이 필요합니다. 기존 재설정 전에 FLR(함수 수준 재설정) 또는 컨트롤러 재설정이 발생하는 경우 컨트롤러는 현재 실행 중인 펌웨어 이미지로 작업을 계속해야 합니다.
NVME_STATUS_INVALID_QUEUE_DELETION
I/O 완료 큐 삭제 명령에 대한 다음 상태를 나타냅니다.

지정한 I/O 완료 큐를 삭제할 수 없습니다. 이 오류 조건의 일반적인 이유는 삭제되지 않은 연결된 I/O 제출 큐가 있기 때문입니다.
NVME_STATUS_FEATURE_ID_NOT_SAVEABLE
기능 설정 명령에 지정된 기능 식별자는 저장 가능한 값을 지원하지 않습니다.
NVME_STATUS_FEATURE_NOT_CHANGEABLE
기능 설정 명령에 지정된 기능 식별자는 변경되지 않을 수 있습니다.
NVME_STATUS_FEATURE_NOT_NAMESPACE_SPECIFIC
기능 설정 명령에 지정된 기능 식별자는 네임스페이스별로 지정되지 않습니다. 기능 식별자 설정은 모든 네임스페이스에 적용됩니다.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_NVM_SUBSYSTEM_RESET
펌웨어 커밋 명령의 상태를 나타냅니다.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_RESET
펌웨어 커밋 명령에 대한 다음 상태를 나타냅니다.

펌웨어 커밋에 성공했습니다. 그러나 펌웨어 이미지를 활성화하려면 NVM 하위 시스템 재설정이 필요합니다. NVM 하위 시스템 재설정 전에 다른 유형의 재설정이 발생하는 경우 컨트롤러는 현재 실행 중인 펌웨어 이미지로 작업을 계속해야 합니다.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATION
펌웨어 커밋 명령에 대한 다음 상태를 나타냅니다.

즉시 활성화되면 지정된 이미지가 식별 컨트롤러에 보고된 MFTA(펌웨어 정품 인증 최대 시간) 값을 초과합니다. 펌웨어를 활성화하려면 펌웨어 커밋 명령을 다시 실행하고 다시 설정을 사용하여 이미지를 활성화해야 합니다.
NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITED
펌웨어 커밋 명령에 대한 다음 상태를 나타냅니다.

지정된 이미지는 공급업체의 특정 이유로 컨트롤러의 정품 인증이 금지됩니다. 예를 들어 컨트롤러는 수정 버전 펌웨어를 지원하지 않습니다.
NVME_STATUS_OVERLAPPING_RANGE
이러한 명령에 대한 다음 상태를 나타냅니다.

- 펌웨어 커밋: 이 오류는 펌웨어 이미지에 겹치는 범위가 있는지 여부를 나타냅니다.
- 기능 설정: LBA 범위 형식 데이터 구조에 겹치는 범위가 있는 경우 이 오류가 표시됩니다.
- 펌웨어 이미지 다운로드: 펌웨어 이미지의 범위가 겹치는 경우 이 오류가 표시됩니다.
NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITY
네임스페이스 관리 명령에 대한 다음 상태를 나타냅니다.

네임스페이스를 만들려면 현재 사용 가능한 것보다 더 많은 여유 공간이 필요합니다. 오류 정보 로그의 명령별 정보 필드는 네임스페이스를 만드는 데 필요한 총 NVM 용량을 바이트 단위로 지정합니다.
NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLE
네임스페이스 관리 명령에 대한 다음 상태를 나타냅니다.

지원되는 네임스페이스 수가 초과되었습니다.
NVME_STATUS_NAMESPACE_ALREADY_ATTACHED
네임스페이스 첨부 파일 명령에 대한 다음 상태를 나타냅니다.

컨트롤러가 지정된 네임스페이스에 이미 연결되어 있습니다.
NVME_STATUS_NAMESPACE_IS_PRIVATE
네임스페이스 첨부 파일 명령에 대한 다음 상태를 나타냅니다.

컨트롤러가 네임스페이스에 연결되지 않았습니다. 네임스페이스가 프라이빗이며 이미 하나의 컨트롤러에 연결되어 있으므로 컨트롤러 연결 요청을 완료할 수 없습니다.
NVME_STATUS_NAMESPACE_NOT_ATTACHED
네임스페이스 첨부 파일 명령에 대한 다음 상태를 나타냅니다.

컨트롤러가 네임스페이스에 연결되지 않았습니다. 컨트롤러 분리 요청을 완료할 수 없습니다.
NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED
NVME_STATUS_CONTROLLER_LIST_INVALID
네임스페이스 첨부 파일 명령에 대한 다음 상태를 나타냅니다.

제공된 컨트롤러 목록이 잘못되었습니다.
NVME_STATUS_DEVICE_SELF_TEST_IN_PROGRESS
디바이스 자체 테스트 명령의 상태를 나타냅니다.
NVME_STATUS_BOOT_PARTITION_WRITE_PROHIBITED
펌웨어 커밋 명령의 상태를 나타냅니다.
NVME_STATUS_INVALID_CONTROLLER_IDENTIFIER
가상화 관리 명령의 상태를 나타냅니다.
NVME_STATUS_INVALID_SECONDARY_CONTROLLER_STATE
가상화 관리 명령의 상태를 나타냅니다.
NVME_STATUS_INVALID_NUMBER_OF_CONTROLLER_RESOURCES
가상화 관리 명령의 상태를 나타냅니다.
NVME_STATUS_INVALID_RESOURCE_IDENTIFIER
가상화 관리 명령의 상태를 나타냅니다.
NVME_STATUS_STREAM_RESOURCE_ALLOCATION_FAILED
Streams 지시문 명령의 상태를 나타냅니다.
NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES
다음 명령의 상태를 나타냅니다. 데이터 세트 관리, 읽기, 쓰기

명령에 지정된 특성이 충돌합니다.
NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION
다음 명령의 상태를 나타냅니다. 비교, 읽기, 쓰기, 쓰기 0

명령에 지정된 보호 정보 설정이 잘못되었습니다.
NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGE
다음 명령에 대한 상태를 나타냅니다. 데이터 세트 관리, 쓰기, 수정할 수 없는 쓰기, 쓰기 0

읽기 전용 범위에 대해 할당 취소를 시도하는 경우 컨트롤러는 필요에 따라 이 상태를 보고할 수 있습니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 10
헤더 nvme.h