// Copyright (c) 2009 DMTF. All rights reserved. [Version ( "2.22.0" ), UMLPackagePath ( "CIM::Device::USB" ), Description ( "The management characterisitics of a USB Device." )] class CIM_USBDevice : CIM_LogicalDevice { [Description ( "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." )] uint16 USBVersion; [Description ( "Indicates the USB class code." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bDeviceClass" }] uint8 ClassCode; [Description ( "Indicates the USB subclass code." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bDeviceSubClass" }] uint8 SubclassCode; [Description ( "Indicates the USB protocol code." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bDeviceProtocol" }] uint8 ProtocolCode; [Description ( "From the USB specification Device Descriptor, where " "\'bcdUSB\' is the USB Specification Number, in " "Binary-Coded Decimal format, that the device complies " "with." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bcdUSB" }] uint16 USBVersionInBCD; [Description ( "From the USB specification Device Descriptor, Maximum " "Packet size for the USB zero endpoint. Valid sizes are " "8, 16, 32, 64." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bMaxPacketSize" }] uint8 MaxPacketSize; [Description ( "From the USB specification Device Descriptor, Vendor ID " "assigned by USB.org." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|idVendor" }] uint16 VendorID; [Description ( "From the USB specification Device Descriptor, Product ID " "assigned by manufacturer." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|idProduct" }] uint16 ProductID; [Description ( "From the USB specification Device Descriptor, Device " "Release Number in Binary-Coded Decimal." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bcdDevice" }] uint16 DeviceReleaseNumber; [Description ( "From the USB specification Device Descriptior, " "Manufacturer string." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|iManufacturer" }] string Manufacturer; [Description ( "From the USB specification Device Descriptor, Product String." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|iProduct" }] string Product; [Description ( "From the USB specification Device Descriptor, Serial " "Number String." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|iSerialNumber" }] string SerialNumber; [Description ( "Number of device configurations that are defined for the Device." ), MappingStrings { "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bNumConfigurations" }] uint8 NumberOfConfigs; [Description ( "Indicates the configuration currently selected for the " "Device. If this value is zero, the Device is " "unconfigured." ), ModelCorrespondence { "CIM_USBDevice.CurrentAlternateSettings" }] uint8 CurrentConfigValue; [Description ( "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 { "CIM_USBDevice.CurrentConfigValue" }] uint8 CurrentAlternateSettings[]; [Description ( "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." )] datetime CommandTimeout; [Description ( "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. \n" "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." )] uint32 GetDescriptor( [IN, Description ( "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." )] uint8 RequestType, [IN, Description ( "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." )] uint16 RequestValue, [IN, Description ( "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." )] uint16 RequestIndex, [IN, OUT, Description ( "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." )] uint16 RequestLength, [IN ( false ), OUT, Description ( "Buffer returns the requested Descriptor " "information. If the Descriptor does not exist, the " "contents of the Buffer are undefined." )] uint8 Buffer[]); };