다음을 통해 공유


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

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

Description
0x00 디바이스
기타 모든 값 나중에 사용하도록 예약되어 있습니다.

bDeviceClass

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

Description
0x00 대용량 스토리지
기타 모든 값 나중에 사용하도록 예약되어 있습니다.

bDeviceSubClass

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

bit
0 부팅 가능 또는 부팅 불가능
1 포함 또는 이동식
2 UME(JESD220-1)용으로 예약됨
기타 모든 값 나중에 사용하도록 예약되어 있습니다.

bProtocol

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

Description
0x00 SCSI
기타 모든 값 나중에 사용하도록 예약되어 있습니다.

bNumberLU

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

bNumberWLU

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

bBootEnable

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

Description
0x00 부팅 기능 사용 안 함
0x01 부팅 기능 사용
기타 모든 값 나중에 사용하도록 예약되어 있습니다.

bDescrAccessEn

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

Description
0x00 디바이스 설명자 액세스 사용 안 함
0x01 디바이스 설명자 액세스 사용
기타 모든 값 나중에 사용하도록 예약되어 있습니다.

bInitPowerMode

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

Description
0x00 UFS-Sleep 모드
0x01 활성 모드
기타 모든 값 나중에 사용하도록 예약되어 있습니다.

bHighPriorityLUN

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

bSecureRemovalType

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

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

bSecurityLU

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

Description
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로 설정된 경우 기능이 지원됩니다.

bit
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_DESCRIPTOR UFS_UNIT_CONFIG_DESCRIPTOR 해당 매개 변수를 변경하여 일부 매개 변수를 변경할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 1709
지원되는 최소 서버 Windows Server 2016
머리글 ufs.h

추가 정보