1. A method for providing device-independent control of storage enclosure hardware using a SCSI Enclosure Services (SES) protocol, comprising: storing user-configurable functions tailored to the storage enclosure hardware in a SES Application Programming Interface (API) within a storage enclosure containing the storage enclosure hardware; receiving a SES command for controlling one or more general hardware operational capabilities from a RAID controller by a processor within the storage enclosure; converting the SES command to a series of function calls in accordance with SES protocol code within the storage enclosure; and identifying from the user-configurable functions a series of functions corresponding to the series of function calls and executing the series of functions in the SES API to control specific non-SCSI storage enclosure hardware, wherein the user-configurable functions tailored to the storage enclosure hardware comprise one or more functions 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.