最新のストレージタイプの多くは、ブロックを割り当てるためにThin provisioningを使用します。ディスク装置にはBlock allocation mapを取得する必要があります。ボリュームビットマップを取得するにはFSCTL_GET_VOLUME_BITMAPがありますが、それはファイルシステム固有であり、私はFS固有ではないアプローチが必要です。 Windows 8以降Windows is sending "TRIM and Unmap" hints to storage media to track allocated blocks。ディスクデバイスに割り当てられるblokの決定方法は?
UNMAPは、アプリケーションまたはシステムが ストレージスタックと特定のセクタまたはセクタの 範囲で以前に たセクタを含む、現在使用されていないディスクに通信するためのSCSIコマンドであります後で削除されたファイルによって使用されます。
これは可能です。残念ながら、私はそれを得るためにDisk Management Control Codeまたはディスク管理機能を見つけることができませんでした。多分誰かがそれを得る方法を知っている?
標準的な方法はありません。基盤となるストレージは、任意の方法でシンプロビジョニングを実装できます。 TrimとUnmapを使用すると、OSはストレージデバイスに情報を提供することができます。 –
SCSIドライブがある場合、SBC-3に導入されたGET LBA STATUSコマンドは、デバイス自体から低レベルのマッピングを取得する方法です。 –
@gubblebozerありがとうございました!それは受け入れることができます。 IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTESがこの作業を実行できるように見えます –