Monolithic Storage Drivers and WindowsUpdated: December 4, 2001
Monolithic drivers are drivers that are structured to handle all storage command processing from the driver class to the host bus attachment, residing in the code path either alongside Microsoft-supplied monolithic drivers, or alongside a Microsoft-supplied port driver and vendor-supplied miniport drivers. Monolithic drivers, by their nature, are exceedingly complex and difficult to manage in areas like power management, hibernation, and compatibility. This is why Microsoft attempts to deliver the best possible solution by implementing mini-port architectures and supplying full-feature monolithic drivers for specific classes of storage attachments and devices. The Windows SCSI Port model and mini-IDE driver models employ the ability for device manufacturers to enhance and engage their hardware for specific tasks not covered in the standard interface. These models are constantly undergoing review and improvement, and our hardware partner input on these models is the best path to key enhancements the developer may need. It is possible to develop and implement monolithic drivers in the Windows product, but currently there is little development help available through resources such as the Windows DDK sample code or documentation. In addition, the nature of these proprietary drivers and their test matrices are so complex that there is little or no chance that Microsoft can assist in these development efforts. Issues that could challenge existing monolithic storage drivers include:
To avoid problems, miniport storage drivers should observe the following:
Further, monolithic storage drivers that make calls directly into any unpublished (non-operating-system implemented) API or structure may fail logo tests administered by WHQL. If you must write monolithic drivers, stay involved with Microsoft. Good communication helps us better understand your issues and prepare for and work with you on potential compatibility issues. Call to action for writing storage drivers:
|
|
