Patent ID: 7222348

Claim:
A method comprising: receiving an input/output (I/O) request packet (IRP) at a universal multipath driver (UMD) from a higher level driver; and managing via the UMD a plurality of paths to a plurality of device objects in response to the IRP using a plurality of lower level drivers, the device objects corresponding to physical devices having M device types, the lower level drivers controlling the physical devices, comprising: responding to a major function IRP from one of an I/O manager, a Plug and Play (PnP) manager, and a power manager, comprising responding to one of a start device minor IRP, a remove device minor IRP, a device relation minor IRP, an identifier (ID) query minor IRP, a stop device minor IRP, and a usage notification minor IRP, and monitoring a device path in the N paths, N being the number of paths of the plurality of paths; wherein responding to the start device minor IRP comprises: obtaining a peripheral address of an attached device using one of the lower level drivers, obtaining a device code of the attached device using the peripheral address, and determining if the device code matches an entry in a device list.