ストレージ ドライバーの新機能
このトピックでは、Windows 8 のストレージの新機能と強化された機能についてまとめています。
- クラッシュダンプ フィルター ドライバーの読み取りサポート
- 拡張ストレージでの IEEE 1667 と Trusted Computing Group (TCG) への準拠を強化したストレージ サイロ
- Storport の拡張機能
- 仮想プロビジョニング
クラッシュダンプ フィルター ドライバーの読み取りサポート
Windows 8 では、クラッシュダンプ フィルター ドライバーの読み取りコールバック ルーチンがサポートされるようになりました。読み取りコールバック ルーチンを 使うと、フィルター ドライバーではシステム再開時に休止状態ファイルを処理できます。 読み取りコールバック ルーチン Dump_Read が、初期化中にクラッシュダンプ フィルター ドライバーによって登録された FILTER_INITIALIZATION_DATA 構造体に含まれるようになりました。
拡張ストレージでの IEEE 1667 と Trusted Computing Group (TCG) への準拠を強化したストレージ サイロ
Windows 8 のリリース前は、UsbStor.sys ポート ドライバーには IEEE 1667 サイロ機能が含まれていました。 IEEE 1667 サイロ機能は、UsbStor.sys から新しい EhStorClass.sys ドライバーに移動されました。この移動により、IEEE 1667 対応デバイスのサポートは、UsbStor.sys に加えて、他のストレージ ポートまで拡張されるようになりました。
また、TCG ストレージ サイロ ドライバーである EhStorTcgDrv.sys も Windows 8 の新機能です。このサイロ ドライバーでは、TCG 準拠ストレージ デバイスの帯域幅とキーを管理するための TCG プロトコルが実装されています。
サイロ ドライバーと拡張ストレージ クラス ドライバーとの通信用の新しい一連の制御コードは次のとおりです。
- サイロ ドライバー制御コード
- デバイス状態制御コード
- 帯域幅とキー管理制御コード
- IOCTL_EHSTOR_BANDMGMT_ACTIVATE
- IOCTL_EHSTOR_BANDMGMT_CREATE_BAND
- IOCTL_EHSTOR_BANDMGMT_DELETE_BAND
- IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS
- IOCTL_EHSTOR_BANDMGMT_ERASE_BAND
- IOCTL_EHSTOR_BANDMGMT_GET_BAND_METADATA
- IOCTL_EHSTOR_BANDMGMT_QUERY_CAPABILITIES
- IOCTL_EHSTOR_BANDMGMT_REVERT
- IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION
- IOCTL_EHSTOR_BANDMGMT_SET_BAND_METADATA
- IOCTL_EHSTOR_BANDMGMT_SET_BAND_SECURITY
Storport の拡張機能
Storport ドライバーの拡張機能にはさまざまな新機能が用意されています。Storport ミニポート ドライバー開発に重要な新機能は次のとおりです。
拡張 SRB 形式
ATA ポート固有の機能 (TRIM や SMART など) により、これらの機能を使うデバイスの Storport モデルでミニポートの開発はできなくなります。Windows 8 の Storport では、拡張 SRB 形式が加わりこれらの機能に対応しています。STORAGE_REQUEST_BLOCK 構造体では、拡張 SRB 形式を使うことができます。SCSI_REQUEST_BLOCK 構造体を処理する Storport 対応ルーチンは、STORAGE_REQUEST_BLOCK 構造体でも動作するようになりました。
作業項目のキュー
ミニポートでは、システムのワーカー スレッドで処理するために、作業項目を作成してキューに追加します。新しい作業項目のキュー ルーチンは次のとおりです。
タイマーの増設
従来のミニポートでは、StorPortNotification ルーチンと RequestTimerCall 通知の種類を使って、1 つのタイマーを作ることができました。Windows 8 では、サポート ルーチンを使って最大 4 つのタイマーを作成できるようになりました。新しいタイマー ルーチンは次のとおりです。
ACPI メソッドと電源設定通知
ミニポート ドライバーでは、StorPortInvokeAcpiMethod ルーチンを使って、ストレージ コントローラーの ACPI メソッドを直接呼び出すことができます。選んだ電源設定通知をミニポート ドライバーに送るには、StorPortSetPowerSettingNotificationGuids ルーチンを使って通知に登録します。
仮想プロビジョニング
コミットされていないストレージの割り当てにより、限られたストレージ リソースを柔軟かつ効率的に使うことができます。Windows 8 では、仮想プロビジョニングされたストレージの状態について情報を提供します。仮想プロビジョニングされたストレージ割り当ての状態や情報は、次のメソッドを使って取得できます。
IOCTL_STORAGE_QUERY_PROPERTY 要求のストレージ プロパティ クエリに StorageDeviceLBProvisioningProperty 識別子を指定します。
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 要求で、論理ブロック割り当て操作または DeviceDsmAction_Allocation を指定します。
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 要求で、マッピング リソース カウントを取得します。