# Class CIM_USBDevice
extends CIM_LogicalDevice

The management characterisitics of a USB Device.

### Table of Contents
Hierarchy
Direct Known Subclasses
Class Qualifiers
Class Properties
Class Methods

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_ManagedSystemElement
|
+--CIM_LogicalElement
|
+--CIM_EnabledLogicalElement
|
+--CIM_LogicalDevice
|
+--CIM_USBDevice

## Direct Known Subclasses

CIM_USBHub

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | The management characterisitics of a USB Device.
UMLPackagePath | string | CIM::Device::USB
Version | string | 2.22.0

## Class Properties

### Local Class Properties

Name | Data Type | Default Value | Qualifiers
--- | --- | --- | ---
Name | Data Type | Value
ClassCode | uint8 |
Description | string | Indicates the USB class code.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bDeviceClass
CommandTimeout | datetime |
Description | string | CommandTimeout is configurable by management applications supporting USB Redirections. When the Redirection Service redirects a USBDevice command to a remote device, and the remote device does not respond before CommandTimout times out, the Redirection Service will emulate a media eject event and re-try the command and/or try to re-establish the connection to the remote device. The timeout is expressed using the interval format of the datetime type.
CurrentConfigValue | uint8 |
Description | string | Indicates the configuration currently selected for the Device. If this value is zero, the Device is unconfigured.
ModelCorrespondence | string | CIM_USBDevice.CurrentAlternateSettings
DeviceReleaseNumber | uint16 |
Description | string | From the USB specification Device Descriptor, Device Release Number in Binary-Coded Decimal.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bcdDevice
Manufacturer | string |
Description | string | From the USB specification Device Descriptior, Manufacturer string.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|iManufacturer
MaxPacketSize | uint8 |
Description | string | From the USB specification Device Descriptor, Maximum Packet size for the USB zero endpoint. Valid sizes are 8, 16, 32, 64.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bMaxPacketSize
NumberOfConfigs | uint8 |
Description | string | Number of device configurations that are defined for the Device.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bNumConfigurations
Product | string |
Description | string | From the USB specification Device Descriptor, Product String.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|iProduct
ProductID | uint16 |
Description | string | From the USB specification Device Descriptor, Product ID assigned by manufacturer.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|idProduct
ProtocolCode | uint8 |
Description | string | Indicates the USB protocol code.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bDeviceProtocol
SerialNumber | string |
Description | string | From the USB specification Device Descriptor, Serial Number String.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|iSerialNumber
SubclassCode | uint8 |
Description | string | Indicates the USB subclass code.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bDeviceSubClass
USBVersion | uint16 |
Description | string | Indicates the latest USB Version supported by the USB Device. The property is expressed as a Binary-Coded Decimal (BCD) where a decimal point is implied between the 2nd and 3rd digits. For example, a value of 0x201 indicates that version 2.01 is supported.
USBVersionInBCD | uint16 |
Description | string | From the USB specification Device Descriptor, where 'bcdUSB' is the USB Specification Number, in Binary-Coded Decimal format, that the device complies with.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bcdUSB
VendorID | uint16 |
Description | string | From the USB specification Device Descriptor, Vendor ID assigned by USB.org.
MappingStrings | string | Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|idVendor
CurrentAlternateSettings | uint8[] |
Description | string | An array of USB 'alternate settings' for each interface in the currently selected configuration (indicated by the CurrentConfigValue property). This array has one entry for each interface in the configuration. If the property, CurrentConfigValue, is zero (indicating the Device is not configured), the array is undefined. To understand how to parse this octet string, refer to the USB Specification.
ModelCorrespondence | string | CIM_USBDevice.CurrentConfigValue

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
Availability | uint16 | CIM_LogicalDevice
Caption | string | CIM_ManagedElement
CommunicationStatus | uint16 | CIM_ManagedSystemElement
CreationClassName | string | CIM_LogicalDevice
Description | string | CIM_ManagedElement
DetailedStatus | uint16 | CIM_ManagedSystemElement
DeviceID | string | CIM_LogicalDevice
ElementName | string | CIM_ManagedElement
EnabledDefault | uint16 | CIM_EnabledLogicalElement
EnabledState | uint16 | CIM_EnabledLogicalElement
ErrorCleared | boolean | CIM_LogicalDevice
ErrorDescription | string | CIM_LogicalDevice
HealthState | uint16 | CIM_ManagedSystemElement
InstallDate | datetime | CIM_ManagedSystemElement
InstanceID | string | CIM_ManagedElement
LastErrorCode | uint32 | CIM_LogicalDevice
MaxQuiesceTime | uint64 | CIM_LogicalDevice
Name | string | CIM_ManagedSystemElement
OperatingStatus | uint16 | CIM_ManagedSystemElement
OtherEnabledState | string | CIM_EnabledLogicalElement
PowerManagementSupported | boolean | CIM_LogicalDevice
PowerOnHours | uint64 | CIM_LogicalDevice
PrimaryStatus | uint16 | CIM_ManagedSystemElement
RequestedState | uint16 | CIM_EnabledLogicalElement
Status | string | CIM_ManagedSystemElement
StatusInfo | uint16 | CIM_LogicalDevice
SystemCreationClassName | string | CIM_LogicalDevice
SystemName | string | CIM_LogicalDevice
TimeOfLastStateChange | datetime | CIM_EnabledLogicalElement
TotalPowerOnHours | uint64 | CIM_LogicalDevice
TransitioningToState | uint16 | CIM_EnabledLogicalElement
AdditionalAvailability | uint16[] | CIM_LogicalDevice
AvailableRequestedStates | uint16[] | CIM_EnabledLogicalElement
IdentifyingDescriptions | string[] | CIM_LogicalDevice
OperationalStatus | uint16[] | CIM_ManagedSystemElement
OtherIdentifyingInfo | string[] | CIM_LogicalDevice
PowerManagementCapabilities | uint16[] | CIM_LogicalDevice
StatusDescriptions | string[] | CIM_ManagedSystemElement

## Class Methods

### Local Class Methods

#### GetDescriptor (uint32)

#### Method Qualifiers (GetDescriptor)

Name | Data Type | Value
--- | --- | ---
Description | string | This method returns the USBDevice Descriptor as specified by the input parameters. Each parameter is briefly described here with more detail in its Qualifier list. RequestType is an input parameter that defines whether the request is for standard, class or vendor-specific information, as well as specifying the recipient. RequestValue is also an input parameter and defines the USB Descriptor Type and Index. RequestIndex is an input parameter which describes the language used to return a string Descriptor. RequestLength is both an input and output parameter. It specifies the length of the Descriptor that should be returned (on input) and what is actually returned in the Buffer parameter (on output). Buffer is an output parameter, containing the Descriptor data. The GetDescriptor method returns an integer value of 0 if the USB Descriptor is successfully returned, 1 if the request is not supported and any other number to indicate an error. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (GetDescriptor)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
RequestIndex | uint16
Description | string | RequestIndex defines the 2 byte Language ID code used by the USBDevice when returning string Descriptor data. The parameter is typically 0 for non-string Descriptors. Refer to the USB Specification for more information.
IN | boolean | true
RequestLength | uint16
Description | string | On input, RequestLength is the length (in octets) of the Descriptor that should be returned. If this value is less than the actual length of the Descriptor, only the requested length will be returned. If it is more than the actual length, the actual length is returned. On output, this parameter is the length, in octets, of the Buffer being returned. If the requested Descriptor does not exist, the contents of this parameter are undefined.
IN | boolean | true
OUT | boolean | true
RequestType | uint8
Description | string | RequestType is bit-mapped and identifies the type of Descriptor request and the recipient. The type of request may be 'standard', 'class' or 'vendor-specific'. The recipient may be 'device', 'interface', 'endpoint' or 'other'. Refer to the USB Specification for the appropriate values for each bit.
IN | boolean | true
RequestValue | uint16
Description | string | RequestValue contains the Descriptor Type in the high byte and the Descriptor Index (for example, index or offset into the Descriptor array) in the low byte. Refer to the USB Specification for more information.
IN | boolean | true
Buffer | uint8[]
Description | string | Buffer returns the requested Descriptor information. If the Descriptor does not exist, the contents of the Buffer are undefined.
IN | boolean | false
OUT | boolean | true

### Inherited Class Methods

Name | Return Type | Class Origin
--- | --- | ---
EnableDevice | uint32 | CIM_LogicalDevice
OnlineDevice | uint32 | CIM_LogicalDevice
QuiesceDevice | uint32 | CIM_LogicalDevice
RequestStateChange | uint32 | CIM_EnabledLogicalElement
Reset | uint32 | CIM_LogicalDevice
RestoreProperties | uint32 | CIM_LogicalDevice
SaveProperties | uint32 | CIM_LogicalDevice
SetPowerState | uint32 | CIM_LogicalDevice