AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
Usbh_Stor_GetUnitInfo 関数

ストレージユニットの情報の取得

Syntax
C++
uhs_sbit32_t Usbh_Stor_GetUnitInfo(PSTOR_UNIT pUnit, STOR_UNIT_INFO * pInfo);
引数 
説明 
PSTOR_UNIT pUnit 
[in] 情報を取得したいストレージユニット 
STOR_UNIT_INFO * pInfo 
[out] デバイス情報を格納するバッファ 

ストレージユニットの情報の取得結果

返値の詳細 
説明 
成功 
パラメータエラー 
初期化済みでない 

下記のストレージユニットの情報を構造体データとして返します。 

・ブロック(セクタ)サイズ 

・最終ブロックアドレス 

・ベンダ名 

・製品名 

・デバイスが報告したリムーバブル状態 

本APIは、ユニットのマウント状況に関係なく実行することが可能です。 

デバイス情報を格納するSTOR_UNIT_INFOバッファ領域は、呼び出し元が確保して下さい。

本APIが返す各種値は、USBストレージデバイスがSCSIコマンドにて報告する情報を元に作成されます。

1: uhs_sbit32_t Usbh_Stor_GetUnitInfo(PSTOR_UNIT pUnit, STOR_UNIT_INFO *pInfo) 2: { 3: uhs_ubit8_t i; 4: 5: API_REPORT_MILESTONE( USBSTOR_CHKPOINTS_API_GETUNITINFO ); 6: 7: 8: if( pStorClassDriver == NULL ) { 9: API_REPORT_SUMMARY( USBSTOR_LOG_SYS_SYSTEM_ERROR ); 10: return USBSTOR_SYS_SYSTEM_ERROR; 11: } 12: 13: 14: pUnit = Usbh_Stor_GetStorUnit((uhs_sbit32_t)pUnit); 15: 16: 17: if( (pUnit == NULL) || (pInfo == NULL) || 18: (Usbh_Stor_Api_IsStorUnitObject(pUnit) == FALSE) ) { 19: API_REPORT_SUMMARY( USBSTOR_LOG_API_PARAM_ERROR ); 20: return Usbh_Stor_SetLastError( NULL, USBSTOR_API_PARAM_ERROR ); 21: } 22: 23: 24: pInfo->u16BlockSize = pUnit->u16BlockSize; 25: pInfo->u32LastBlockAddress = pUnit->u32LastBlockAddress; 26: pInfo->bRemovable = pUnit->bRemovable; 27: for( i = 0; i < (uhs_ubit8_t) sizeof(pInfo->u8VendorName); i++) { 28: 29: pInfo->u8VendorName[i] = pUnit->u8VendorName[i]; 30: } 31: for( i = 0; i < (uhs_ubit8_t) sizeof(pInfo->u8ProductName); i++) { 32: 33: pInfo->u8ProductName[i] = pUnit->u8ProductName[i]; 34: } 35: return USBSTOR_SUCCESS; 36: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.