USB Libraries Help > USB Host Libraries > USB Host Layer Library > Library Interface > a) Functions > USB_HOST_DeviceStringDescriptorGet Function
MPLAB Harmony USB Stack
USB_HOST_DeviceStringDescriptorGet Function

This function retrieves the specified string descriptor from the device. This function will cause the host layer to issue a control transfer to the device. When the string descriptor is available, the host layer will call the callback function to let the application know that the request has completed. 

The function will return a valid request handle in requestHandle, if the request was successful. This request handle will be returned in the callback function. The size of the stringDescriptor buffer is specified by the length parameter. Only length number of bytes will be retrieved. The type of device string descriptor to be retrieved is specified by the stringType parameter. The supported language IDs, manufacturer, product and serial number strings can be obtained. While obtaining the supported language IDs, the languageID parameter will be ignored.

C
USB_HOST_RESULT USB_HOST_DeviceStringDescriptorGet(
    USB_HOST_DEVICE_OBJ_HANDLE deviceObjHandle, 
    USB_HOST_DEVICE_STRING stringType, 
    uint16_t languageID, 
    void * stringDescriptor, 
    size_t length, 
    USB_HOST_REQUEST_HANDLE * requestHandle, 
    USB_HOST_STRING_REQUEST_COMPLETE_CALLBACK callback, 
    uintptr_t context
);
Preconditions

The USB_HOST_BusEnable() function should have been called.

Parameters
Parameters 
Description 
deviceObjHandle 
handle to the device whose string descriptor is to be retrieved.
 
stringType 
type of string descriptor to be retrieved
 
languageID 
the language ID of the string descriptor
 
stringDescriptor 
output buffer for the descriptor
 
length 
size of the specified output buffer
 
requestHandle 
This is an output parameter. It will contain a valid request handle if the request was successful. It will contain USB_HOST_REQUEST_HANDLE_INVALID is the request was not successful.
 
callback 
Function that will be called when this request completes. If this is NULL, then the application will not receive indication of completion.
 
context 
Calling application context to be returned in the callback function. 
Returns

USB_HOST_RESULT_SUCCESS - The request was scheduled successfully. requestHandle will contain a valid request handle. USB_HOST_RESULT_DEVICE_UNKNOWN - The request failed because the device was detached. USB_HOST_RESULT_FAILURE - An unknown error occurred. USB_HOST_RESULT_REQUEST_BUSY - The host layer cannot take more requests at this point. The application should try later. USB_HOST_RESULT_STRING_DESCRIPTOR_UNSUPPORTED - The device does not support the specified string descriptor type.

Remarks

None.

Example