次の方法で共有


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_DESCRIPTORbBootEnable がゼロに設定されている場合、またはブートウェル既知論理ユニットが有効な論理ユニットにマップされていない場合、ブートウェル既知論理ユニットは終了します。

み取り専用UFS_DEVICE_DESCRIPTOR、そのパラメーターの一部は 、UFS_UNIT_CONFIG_DESCRIPTORの対応するパラメーターを変更することによって変更できます。

要件

要件
サポートされている最小のクライアント Windows 10 バージョン 1709
サポートされている最小のサーバー Windows Server 2016
Header ufs.h

こちらもご覧ください