1. A method for providing abstracted control of storage enclosure hardware using a SCSI Enclosure Services (SES) protocol, comprising: converting a SES command for controlling one or more general hardware operational capabilities to a series of function calls in SES protocol code; and executing a series of functions corresponding to the series of function calls in a SES Application Programming Interface (API) to control specific storage enclosure hardware, wherein the functions are tailored to the storage enclosure hardware and at least some of the functions are for performing operations selected from the group consisting of querying the existence of an enclosure element, querying the status of an enclosure element, controlling an enclosure element, querying the existence of a sub-enclosure, querying and controlling elements in a sub-enclosure, querying the existence of vendor-defined mode pages, reading vendor-defined mode pages, writing vendor-defined mode pages, filling in various vendor-defined fields in standard mode pages, querying the existence of vendor-defined diagnostics pages, reading vendor-defined mode pages, writing vendor-defined mode pages, querying the existence of vendor-defined Inquiry pages, and reading vendor-defined Inquiry pages.