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

ハブデバイスに接続されたデバイス情報を取得する

Syntax
C++
struct usbd_usb_deviceinfo * Usbh_Api_EnumDevice(struct usbd_usb_deviceinfo * pParent, struct usbd_usb_deviceinfo * pChild);
引数 
説明 
struct usbd_usb_deviceinfo * pParent 
[in] Usbh_Api_EnumRootHub() で取得したハブデバイス 
struct usbd_usb_deviceinfo * pChild 
[in] デバイス 

ハブデバイスに接続されたデバイス情報の取得結果

返値の詳細 
説明 
NULL以外 
接続デバイス 
NULL 
これ以上デバイスは接続されていない 

指定したハブデバイスに接続されたデバイス情報を取得します。 

Usbh_Api_EnumRootHub で取得したハブデバイスを、 本関数の引数とすることでハブに接続されたデバイスを1つずつ取得することができます。 

pChild をNULLとすることで1つ目のデバイスを取得することができます。 

ハブに複数のデバイスが接続されている場合、引数pChild = NULLで取得したデバイスを 引数とすることで2つ目のデバイスを取得でき、取得できるデバイスがなくなるとNULLを返します。

1: struct usbd_usb_deviceinfo * Usbh_Api_EnumDevice( struct usbd_usb_deviceinfo * pParent, struct usbd_usb_deviceinfo * pChild ) 2: { 3: int i = 0; 4: struct usbd_usb_deviceinfo * dev = NULL; 5: 6: if ( pParent == NULL) { 7: CORE_REPORT_ERROR( USBC_INVALID_PARAMETER ); 8: return NULL; 9: } 10: 11: if ( pChild == NULL ) { 12: 13: for ( i=1; i<USB_ENUMDEV_MAXDEV; i++ ) { 14: if ( pParent->usbdev_LowerHub[i] != NULL ) { 15: dev = pParent->usbdev_LowerHub[i]; 16: break; 17: } 18: } 19: } else { 20: 21: for ( i=1; i<USB_ENUMDEV_MAXDEV; i++ ) { 22: if ( pParent->usbdev_LowerHub[i] == pChild ) { 23: break; 24: } 25: } 26: if ( i >= USB_ENUMDEV_MAXDEV ) { 27: 28: dev = NULL; 29: } else { 30: 31: for ( i++; i<USB_ENUMDEV_MAXDEV; i++ ) { 32: if ( pParent->usbdev_LowerHub[i] != NULL ) { 33: dev = pParent->usbdev_LowerHub[i]; 34: } 35: } 36: } 37: } 38: 39: return dev; 40: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.