UFS_DEVICE_DESCRIPTOR 構造体 (ufs.h)
UFS_DEVICE_DESCRIPTORはユニバーサル フラッシュ ストレージ (UFS) デバイスのメイン記述子であり、デバイス クラスとサブクラス、およびこのデバイスへのアクセスに使用するプロトコル (コマンド セット) と、デバイス内に含まれる論理ユニット (LU) の最大数を指定するため、最初に取得される記述子である必要があります。
構文
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 | Device |
その他のすべての値 | 予約済み |
bDeviceClass
デバイス クラスを指定します。
値 | 説明 |
---|---|
0x00 | 大容量ストレージ |
その他のすべての値 | 予約済み |
bDeviceSubClass
次のように、ビット マップ内の UFS 大容量ストレージ サブクラスを指定します。
ビット | 値 |
---|---|
0 | 起動可能または起動不可 |
1 | 埋め込みまたはリムーバブル |
2 | JESD220-1 (UME) 用に予約済み |
その他のすべての値 | 予約済み |
bProtocol
UFS デバイスによるプロトコル のサポートを指定します。
値 | 説明 |
---|---|
0x00 | SCSI |
その他のすべての値 | 予約済み |
bNumberLU
論理ユニットの数を指定します。 これには、既知の論理ユニットの数は含まれません。
bNumberWLU
既知の論理ユニットの数を指定します。
bBootEnable
デバイスのブート機能を有効にするかどうかを指定します。
値 | 説明 |
---|---|
0x00 | ブート機能が無効 |
0x01 | ブート機能が有効 |
その他のすべての値 | 予約済み |
bDescrAccessEn
ブート シーケンスの部分的な初期化フェーズの後にデバイス記述子を読み取ることができるかどうかを示します。
値 | 説明 |
---|---|
0x00 | デバイス記述子アクセスが無効 |
0x01 | デバイス記述子アクセスが有効 |
その他のすべての値 | 予約済み |
bInitPowerMode
bInitPowerMode は、デバイスの初期化またはハードウェアリセット後の電源モードを定義します。
値 | 説明 |
---|---|
0x00 | UFS-Sleep モード |
0x01 | アクティブ モード |
その他のすべての値 | 予約済み |
bHighPriorityLUN
bHighPriorityLUN は 、優先度の高い論理ユニットを定義します。
bSecureRemovalType
セキュリティで保護された削除の種類を指定します。
値 | 説明 |
---|---|
0x00 | 物理メモリの消去によって削除された情報 |
0x01 | アドレス指定された場所を 1 文字で上書きし、その後に消去することで削除された情報 |
0x02 | アドレス指定された場所を文字、その補数、その後ランダムな文字で上書きすることによって削除された情報 |
0x03 | ベンダー定義のメカニズムを使用して削除された情報。 |
その他のすべての値 | 予約済み |
bSecurityLU
セキュリティ論理ユニットのサポートがあるかどうかを指定します。
値 | 説明 |
---|---|
0x00 | サポートされていません |
0x01 | 保護されたメモリ ブロックの再生 (RPMB) |
その他のすべての値 | 予約済み |
bBackgroundOpsTermLat
bBackgroundOpsTermLat は、バックグラウンド操作が進行中のときにデータ転送を開始するための最大待機時間を定義します。 終了待機時間の制限は、次の 2 つのケースに適用されます。
- デバイスが転送要求を含む COMMAND UFS プロトコル情報ユニット (UPIU) を受信した場合。 デバイスは、データ転送を開始し、待機時間の制限内で DATA IN UPIU または RTT UPIU を送信する必要があります。
- デバイスが QUERY REQUEST UPIU を受信して fBackgroundOpsEn フラグを クリアするとします。 デバイスは、待機時間の制限内でバックグラウンド操作を終了することが予想されます。
bInitActiveICCLevel
bInitActiveICCLevel は、電源オンまたはリセット後の bActiveICCLevel 値を定義します。 値の範囲は、0x00から0x0Fまでです。
wSpecVersion[2]
仕様バージョンをバイナリ コード 10 進数 (BCD) 形式で示します。
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_DESCRIPTORの bBootEnable がゼロに設定されている場合、またはブートウェル既知論理ユニットが有効な論理ユニットにマップされていない場合、ブートウェル既知論理ユニットは終了します。
読 み取り専用UFS_DEVICE_DESCRIPTOR、そのパラメーターの一部は 、UFS_UNIT_CONFIG_DESCRIPTORの対応するパラメーターを変更することによって変更できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 バージョン 1709 |
サポートされている最小のサーバー | Windows Server 2016 |
Header | ufs.h |