New for Storage Drivers
This topic summarizes the new features and improvements for storage in Windows 8.
- Read Support for Crashdump Filter Drivers
- Extended IEEE 1667 Support and Trusted Computing Group (TCG) Storage Silo for Enhanced Storage
- Storport Enhancements
- Thin Provisioning
Support is added in Windows 8 for a read callback routine in a crashdump filter driver. A read callback routine enables a filter driver to process the hiberfile on system resume. A read callback routine, Dump_Read, is now included in the FILTER_INITIALIZATION_DATA structure registered by crashdump filter drives during initialization.
Before Windows 8, the UsbStor.sys port driver contained the IEEE 1667 silo functionality. The IEEE 1667 silo functionality is moved from UsbStor.sys and into the new EhStorClass.sys driver. This move extends support of IEEE 1667 enabled devices to the other storage ports in addition to UsbStor.sys.
Also new in Windows 8 is the TCG Storage Silo driver, EhStorTcgDrv.sys. This silo driver implements the TCG protocol for band and key management for TCG-compliant storage devices.
The new suite of control codes for communication between silo drivers and the enhanced storage class driver are as follows:
- Silo driver control codes
- Device state control codes
- Band and key management control codes
The enhancements to the Storport driver include many new features. The new features important to Storport miniport driver development are the following:
- Extended SRB format
Features specific to ATA Port, such as TRIM and SMART, prevented miniport development under the Storport model for devices that use them. Storport in Windows 8 accommodates these features with the addition of an extended SRB format. The STORAGE_REQUEST_BLOCK structure provides the extended SRB format. The Storport support routines that handle the SCSI_REQUEST_BLOCK structure now work with the STORAGE_REQUEST_BLOCK structure also.
- Work item queuing
Miniports can create work items and queue them for processing in a system worker thread. The new work item queue routines are the following:
- Additional timers
Previously, miniports could create one timer using the StorPortNotification routine with the RequestTimerCall notification type. In Windows 8, support routines are available to create up to 4 additional timers. The new timer routines are the following:
- ACPI Methods and Power Setting Notifications
Miniport drivers can directly invoke ACPI methods for storage controllers with the StorPortInvokeAcpiMethod routine. Selected power setting notifications can be sent to a miniport driver by registering for notifications with the StorPortSetPowerSettingNotificationGuids routine.
Allocation of uncommited storage provides flexible and efficient use of limited storage resources. Windows 8 provides information about the state of thinly provisioned storage. Thinly provisioned storage allocation status and information are available by using the following methods:
Specify a StorageDeviceLBProvisioningProperty identifier for a storage property query in an IOCTL_STORAGE_QUERY_PROPERTY request.
Specify a logical block allocation action, or DeviceDsmAction_Allocation, in an IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request.
Retrieve mapping resource counts with an IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request.