UFS_DEVICE_DESCRIPTOR 구조체(ufs.h)

UFS_DEVICE_DESCRIPTOR UFS(유니버설 플래시 스토리지) 디바이스의 기본 설명자이며 이 디바이스에 액세스하는 데 사용할 디바이스 클래스 및 하위 클래스 및 프로토콜(명령 집합)과 디바이스 내에 포함된 최대 논리 단위(RU)를 지정하기 때문에 검색된 첫 번째 설명자여야 합니다.

통사론

typedef struct {
  UCHAR  bLength;
  UCHAR  bDescriptorIDN;
  UCHAR  bDevice;
  UCHAR  bDeviceClass;
  UCHAR  bDeviceSubClass;
  UCHAR  bProtocol;
  UCHAR  bNumberLU;
  UCHAR  bNumberWLU;
  UCHAR  bBootEnable;
  UCHAR  bDescrAccessEn;
  UCHAR  bInitPowerMode;
  UCHAR  bHighPriorityLUN;
  UCHAR  bSecureRemovalType;
  UCHAR  bSecurityLU;
  UCHAR  bBackgroundOpsTermLat;
  UCHAR  bInitActiveICCLevel;
  UCHAR  wSpecVersion[2];
  UCHAR  wManufactureDate[2];
  UCHAR  iManufacturerName;
  UCHAR  iProductName;
  UCHAR  iSerialNumberID;
  UCHAR  iOemID;
  UCHAR  wManufacturerID[2];
  UCHAR  bUD0BaseOffset;
  UCHAR  bUDConfigPLength;
  UCHAR  bDeviceRTTCap;
  UCHAR  wPeriodicRTCUpdate[2];
  UCHAR  bUFSFeaturesSupport;
  UCHAR  bFFUTimeout;
  UCHAR  bQueueDepth;
  UCHAR  wDeviceVersion[2];
  UCHAR  bNumSecureWPArea;
  UCHAR  dPSAMaxDataSize[4];
  UCHAR  dPSAStateTimeout;
  UCHAR  iProductRevisionLevel;
  UCHAR  Reserved[5];
  UCHAR  Reserved2[16];
  USHORT wHPBVersion;
  UCHAR  bHPBControl;
  UCHAR  Reserved3[12];
  UCHAR  dExtendedUFSFeaturesSupport[4];
  UCHAR  bWriteBoosterBufferPreserveUserSpaceEn;
  UCHAR  bWriteBoosterBufferType;
  UCHAR  dNumSharedWriteBoosterBufferAllocUnits[4];
} UFS_DEVICE_DESCRIPTOR, *PUFS_DEVICE_DESCRIPTOR;

회원

bLength

이 설명자의 길이(바이트)를 지정합니다.

bDescriptorIDN

설명자의 형식을 지정합니다. 이 설명자에는 UFS_DESC_DEVICE_IDN값이 있습니다.

bDevice

디바이스 유형을 지정합니다.

묘사
0x00 장치
다른 모든 값 나중에 사용하기 위해 예약됨

bDeviceClass

디바이스 클래스를 지정합니다.

묘사
0x00 대용량 스토리지
다른 모든 값 나중에 사용하기 위해 예약됨

bDeviceSubClass

다음과 같이 비트 맵에서 UFS 대용량 스토리지 서브클래스를 지정합니다.

비트
0 부팅 가능 또는 부팅 불가능
1 포함 또는 이동식
2 UME(JESD220-1)용으로 예약됨
다른 모든 값 나중에 사용하기 위해 예약됨

bProtocol

UFS 디바이스의 프로토콜 지원을 지정합니다.

묘사
0x00 SCSI
다른 모든 값 나중에 사용하기 위해 예약됨

bNumberLU

논리 단위 수를 지정합니다. 여기에는 잘 알려진 논리 단위 수가 포함되지 않습니다.

bNumberWLU

잘 알려진 논리 단위의 수를 지정합니다.

bBootEnable

디바이스의 부팅 기능을 사용할 수 있는지를 지정합니다.

묘사
0x00 부팅 기능 사용 안 함
0x01 부팅 기능 사용
다른 모든 값 나중에 사용하기 위해 예약됨

bDescrAccessEn

부팅 시퀀스의 부분 초기화 단계 후에 디바이스 설명자를 읽을 수 있는지 여부를 나타냅니다.

묘사
0x00 디바이스 설명자 액세스 사용 안 함
0x01 디바이스 설명자 액세스 사용
다른 모든 값 나중에 사용하기 위해 예약됨

bInitPowerMode

bInitPowerMode 디바이스 초기화 또는 하드웨어 재설정 후 전원 모드를 정의합니다.

묘사
0x00 UFS-Sleep 모드
0x01 활성 모드
다른 모든 값 나중에 사용하기 위해 예약됨

bHighPriorityLUN

bHighPriorityLUN 우선 순위가 높은 논리 단위를 정의합니다.

bSecureRemovalType

보안 제거 유형을 지정합니다.

묘사
0x00 실제 메모리 지우기로 제거된 정보
0x01 주소 지정 위치를 단일 문자로 덮어쓰고 지우기를 수행하여 제거된 정보
0x02 주소가 지정된 위치를 문자, 해당 보수 문자, 임의의 문자로 덮어쓰어 제거된 정보
0x03 공급업체 정의 메커니즘을 사용하여 제거된 정보입니다.
다른 모든 값 나중에 사용하기 위해 예약됨

bSecurityLU

보안 논리 단위에 대한 지원이 있는지를 지정합니다.

묘사
0x00 지원되지 않음
0x01 RPMB(보호된 메모리 블록) 재생
다른 모든 값 나중에 사용하기 위해 예약됨

bBackgroundOpsTermLat

bBackgroundOpsTermLat 백그라운드 작업이 진행 중인 경우 데이터 전송을 시작하기 위한 최대 대기 시간을 정의합니다. 종료 대기 시간 제한은 다음 두 가지 경우에 적용됩니다.

  • 디바이스가 전송 요청이 있는 COMMAND UFS 프로토콜 정보 단위(UPIU)를 수신하는 경우 디바이스는 데이터 전송을 시작하고 대기 시간 제한 내에서 데이터 IN UPIU 또는 RTT UPIU를 보내야합니다.
  • 디바이스에서 QUERY REQUEST UPIU를 수신하여 fBackgroundOpsEn 플래그를 지웁니다. 디바이스는 대기 시간 제한 내에서 백그라운드 작업을 종료해야 합니다.

bInitActiveICCLevel

bInitActiveICCLevel 전원 켜기 또는 다시 설정 후 bActiveICCLevel 값을 정의합니다. 값의 범위는 0x00 범위에서 0x0F.

wSpecVersion[2]

BCD(이진 코딩된 10진수) 형식의 사양 버전을 나타냅니다.

wManufactureDate[2]

제조 날짜를 BCD 형식으로 0xMMYY로 지정합니다.

iManufacturerName

제조업체의 이름을 포함하는 문자열에 대한 인덱스 값을 포함합니다.

iProductName

제품 이름을 포함하는 문자열에 대한 인덱스 값을 포함합니다.

iSerialNumberID

일련 번호를 포함하는 문자열에 대한 인덱스 값을 포함합니다.

iOemID

OEM ID를 포함하는 문자열에 대한 인덱스 값을 포함합니다.

wManufacturerID[2]

디바이스의 제조업체 ID를 지정합니다.

bUD0BaseOffset

구성 설명자 내의 구성 가능한 매개 변수인 UFS_CONFIG_DESCRIPTOR단위 설명자 0의 오프셋을 지정합니다.

bUDConfigPLength

UFS_UNIT_CONFIG_DESCRIPTOR매개 변수의 총 크기입니다.

bDeviceRTTCap

디바이스에서 지원하는 미해결 READY TO TRANSFER UPIU의 최대 수를 지정합니다. 최소값은 2입니다.

wPeriodicRTCUpdate[2]

실시간 클록 업데이트의 빈도 및 메서드를 지정합니다. 비트 10~15는 예약되어 있습니다.

bUFSFeaturesSupport

이 디바이스에서 지원되는 기능을 지정합니다. 관련 비트가 1로 설정된 경우 기능이 지원됩니다.

비트
0 FFU(필드 펌웨어 업데이트)
1 PSA(프로덕션 상태 인식)
2 디바이스 수명 범위
다른 모든 값 나중에 사용하기 위해 예약됨

bFFUTimeout

WRITE BUFFER 명령의 실행으로 인해 연결된 포트를 통해 디바이스에 대한 액세스가 제한되거나 가능하지 않은 최대 시간(초)입니다.

bQueueDepth

큐 깊이를 지정합니다. 이 멤버가 0과 같으면 디바이스는 LU당 큐 아키텍처를 구현합니다.

wDeviceVersion[2]

디바이스 버전을 지정합니다.

bNumSecureWPArea

디바이스에서 지원하는 보안 쓰기 보호 영역의 총 수를 지정합니다. 이 멤버의 값은 bNumberLU 32 사이입니다.

dPSAMaxDataSize[4]

PSA 흐름의 사전 솔더링 단계에서 쓸 수 있는 최대 데이터 양을 지정합니다.

dPSAStateTimeout

이 멤버는 JEDEC 사양의 bPSAStateTimeout(29h)에 해당합니다.

iProductRevisionLevel

제품 수정 수준을 포함하는 문자열의 인덱스를 지정합니다.

Reserved[5]

나중에 사용할 수 있습니다.

Reserved2[16]

나중에 사용할 수 있습니다.

wHPBVersion

호스트 성능 부스터 버전을 지정합니다.

bHPBControl

Reserved3[12]

나중에 사용할 수 있습니다.

dExtendedUFSFeaturesSupport[4]

dExtendedUFSFeaturesSupport 지원되는 확장 기능을 나타내는 비트 마스크입니다.

bWriteBoosterBufferPreserveUserSpaceEn

bWriteBoosterBufferPreserveUserSpaceEn 0x01 설정하면 프로비전 중에 구성할 수 있지만 성능이 저하될 수 있는 총 사용자 공간의 감소는 방지됩니다. bWriteBoosterBufferPreserveUserSpaceEn 0x00 설정하면 쓰기 부스터 버퍼는 프로비전 중에 구성할 수 있는 총 사용자 공간을 줄입니다.

bWriteBoosterBufferType

bWriteBoosterBufferType 쓰기 부스터 버퍼 유형을 구성합니다. 0x00 값은 논리 단위 전용 버퍼 모드를 지정합니다. 0x01 값은 공유 버퍼 모드를 지정합니다.

dNumSharedWriteBoosterBufferAllocUnits[4]

dNumSharedWriteBoosterBufferAllocUnits 공유 쓰기 부스터 버퍼 구성에 대한 쓰기 부스터 버퍼 크기를 지정합니다.

발언

UFS_DEVICE_DESCRIPTORbBootEnable 0으로 설정되거나 부팅 잘 알려진 논리 단위 활성화된 논리 단위에 매핑되지 않은 경우 부팅 잘 알려진 논리 단위 종료됩니다.

읽기 전용인 UFS_DEVICE_DESCRIPTORUFS_UNIT_CONFIG_DESCRIPTOR해당 매개 변수를 변경하여 일부 매개 변수를 변경할 수 있습니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 10 버전 1709
지원되는 최소 서버 Windows Server 2016
헤더 ufs.h

참고 항목