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 |