ID to each device. This ID contains location information, or a serial number if supported. Combining the Device ID with the Instance ID gives a string which uniquely identifies an individual device in a system. This is the Device Instance ID. An example of a string from a PCI device is: When Windows discovers a new device, it stores the Device Instances in the Registry from: The Windows Device Manager (Located under the System icon in the Control Panel) will reveal the Device Instance ID for any particular device. Getting the Properties of any device, selecting the Details tab of the Properties dialog and selecting "Device Instance ID" from the drop down box will retrieve the information. Another characteristic of every device is the Device Interface Class. This defines an interface contract, where a device agrees to support a basic set of Input/Output Control calls pertaining to that Device Interface Class. For example, a device agreeing to support the keyboard interface contract must support the IOCTL_KEYBOARD_QUERY_ATTRIBUTES IOCTL call, amongst others. Each class is represented as a large universally unique number called a GUID. A device can register many Device Interface Class GUIDs for itself, contracting to support various appropriate interface calls. The most common Interface Class GUID relating to storage devices is the Volume Device Interface Class GUID, }. Device Interface Class GUIDs can be found in the Registry under: . Device Handler When a non-volume device is being analysed, AutoPlay looks in several places in the Registry for a DeviceHandlers entry. This is simply a string which, when combined with other information, selects an EventHandler (which tables the Handlers). The DeviceHandlers entries are commonly placed into the Registry by the manufacturer of the device. There are also broader categories of devices which have preassigned DeviceHandlers, Video Camera devices for example. The first place AutoPlay looks is under the key of the device instance. For example: is the USB device identification string for an Iomega USB ZIP drive. Combined with a USB serial number, say , this forms the Device Instance ID for the device. Thus the is found at: HKLM\...\Enum\USB\Vid_059b&Pid_0031\059B003112010E93\Device Parameters Icons "" NoMediaIcons "" Label "" DeviceHandlers "ZipDeviceHandler" The DeviceHandlers value in this case is "ZipDeviceHandler". Other device parameters may also be present here: may specify an icon to represent the device along with to represent the device when it has no media present. specifies a friendly name