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

ストレージクラスドライバの初期化

Syntax
C++
uhs_status_t Usbh_Stor_Init(app_callback_info* stCallback);
引数 
説明 
app_callback_info* stCallback 
[in] ストレージデバイス挿抜時のコールバック情報構造体 

ストレージクラスドライバの初期化結果

返値の詳細 
説明 
正常終了 
データエラー 

ストレージクラスドライバの初期化をします。 

ストレージデバイス挿抜時のコールバック先関数を登録します。 

本APIにて登録したコールバック関数は、ストレージデバイス挿抜などのイベント発生時にコールバックされます。 

コールバックする際のパラメータは以下の様になるため、コールバック先の関数では callback_id を確認して各処理を行って下さい。 

第1引数(mod_id):本ドライバを表す MOD_ID_CLASSDRV_STOR が常時指定されます。 

第2引数(callback_id):発生したイベント。( STOR_CALLBACK_ID )  

第3引数(*context):context情報(コミュニケーションデバイスが複数接続された場合の識別用に使用)。 NULLはエラー発生を示します。

本APIはアプリケーションから直接実行しないで下さい。(USB Host COREドライバ向け)

1: uhs_status_t Usbh_Stor_Init(app_callback_info* stCallback) 2: { 3: uhs_ubit8_t i; 4: USB_BOT_STATUS nBotRet; 5: USB_SCSI_STATUS nScsiRet; 6: 7: API_REPORT_MILESTONE( USBSTOR_CHKPOINTS_API_INITIALIZE ); 8: 9: 10: if( stCallback->clsdrv_type != USB_CLASS_MASSSTOR ) { 11: API_REPORT_SUMMARY( USBSTOR_LOG_SYS_SYSTEM_ERROR ); 12: return UDI_STAT_DATA_ERROR; 13: } 14: 15: 16: for( i = 0; i < (uhs_ubit8_t) numof(stDriveTable); i++ ) { 17: stDriveTable[i].s32Context = (CONTEXT_BASE + i); 18: stDriveTable[i].pUserDrv = NULL; 19: stDriveTable[i].pStorUnit = NULL; 20: } 21: 22: 23: pStorClassDriver = Usbh_Stor_CreateStorClassDriver( stCallback->attach_callback, 24: stCallback->detach_callback, 25: Usbh_Stor_Api_AttachStorUnit, 26: Usbh_Stor_Api_DetachStorUnit, 27: Usbh_Stor_ScsiCtrl_AttachStorUnit, 28: Usbh_Stor_ScsiCtrl_DetachStorUnit ); 29: if( pStorClassDriver == NULL ) { 30: API_REPORT_SUMMARY( USBSTOR_LOG_SYS_SYSTEM_ERROR ); 31: return UDI_STAT_DATA_ERROR; 32: } 33: 34: 35: if( (nBotRet = Usbh_Stor_Bot_Initialize(pStorClassDriver)) != USB_BOT_NORMAL ) { 36: 37: Usbh_Stor_DeleteStorClassDriver( pStorClassDriver ); 38: pStorClassDriver = NULL; 39: 40: API_REPORT_SUMMARY( Usbh_Stor_ApiLog_ConvertUsbBotStatToUsbStorStat(nBotRet) ); 41: return UDI_STAT_DATA_ERROR; 42: } 43: 44: 45: if( (nScsiRet = Usbh_Stor_ScsiCtrl_Initialize()) != USB_SCSI_NORMAL ) { 46: 47: Usbh_Stor_Bot_Finalize( pStorClassDriver ); 48: Usbh_Stor_DeleteStorClassDriver( pStorClassDriver ); 49: pStorClassDriver = NULL; 50: 51: API_REPORT_SUMMARY( Usbh_Stor_ApiLog_ConvertUsbScsiStatToUsbStorStat(nScsiRet) ); 52: return UDI_STAT_DATA_ERROR; 53: } 54: 55: return UDI_OK; 56: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.