Patent ID: 8195854

Claim:
A method of accessing end target devices connected to a host computer system via a switched storage network using multiple storage controllers/HBAs present on said host computer system by at least one host system software application running on said host computer system comprising: creating an Advanced Storage Driver (ASD) that operates on said host computer system and acts as a single virtual device driver for access to said end target devices by said at least one host system software application; encapsulating said multiple storage controllers/HBAs and multiple base device drivers running on said host computer system associated on a one-to-one basis with said multiple storage controllers/HBAs as resources of said Advanced Storage Driver in order to virtualize said multiple storage controllers/HBAs for access by said at least one host system software application through said Advanced Storage Driver; communicating between said Advanced Storage Driver and said at least one host system software application input and output communications that are from and intended to be delivered to said end target devices; communicating by said Advanced Storage Driver with said multiple base device drivers associated with said multiple storage controllers/HBAs an indication of storage controller/HBA availability/utilization for each storage controller/HBA of said multiple storage controllers/HBAs associated with each base device driver of said multiple base device drivers; storing by said Advanced Storage Driver said indication of storage controller/HBA availability/utilization for each storage controller/HBA of said multiple storage controllers/HBAs in at least one resource table of said Advanced Storage Driver; mapping by said Advanced Storage Driver said input and output communications for said end target devices across said multiple storage controllers/HBAs based on said storage controller/HBA availability/utilization stored in said at least one resource table; and communicating by said Advanced Storage Driver said input and output communications for said end target devices directly to said multiple storage controllers/HBAs in accord with said mapping of said input and output communications determined by said Advanced Storage Driver such that said multiple storage controllers/HBAs perform said mapped communications from/to said end target devices.