Note: Access Physical Disk on Windows 2000 and later

最近同事在看公司新的PDA platform, 因為新一代的嵌入式系統已經從單純的支援NAND boot, 演進到了支援 management NAND boot了, 簡單講就是透過 MMC or SD 等記憶卡開機, 市面上已經有對應的產品出現了如 Microsoft 的ZuneHD 採用的是SD card controller + NAND 或是 Nokia 的 N97 採用embedded MMC, 當作主要的NonVolatile Memory/Storage.

會有這樣的變化, 完全是因為NAND Flash 的進步太快速, size page, ECC, 一再更改, Embedded System 的其他部分 若是想要跟上NAND Flash 那光是 NAND Host controller 就是一個大問題, 何況還有 wear leveling 演算法等等問題, 因此多數漸漸的都開始認同使用SD or MMC 當成 Middle layer 去分層, 當然在多數的產品上 這些SD/MMC 並不是以卡的形式出現, 而是用chip 的形式出現, 如Sandisk 有iNAND(我想這是他停掉 MDOC 系列的主要原因, 當初買MSystems 應該是為了更好的Channel 與SW人力), Samsung 有MoviNand 當然其他記憶體產商也是有類似產品.

為了因應這個變化, 新的平台設計, 目前建議是使用SD/MMC, 但是為了MP 需要有Tools 去產生對應的 Disk Image 所以做了一些反向工程的東西, 得到一些 information 透過Google 找了一下 發現了一些好文章 特此Bookmark

主要的是  实战DeviceIoControl 之三:制作磁盘镜像文件 這篇

這一系列的實戰DeviceIoControl 是在NT base 的OS 上操作 Physical Disk 的方法. Win9x 就要找別的方法(看過某東西是透過 INT 21h, (使用 VWIN32_DIOC_DOS_DRIVEINFO, 可以執行 INT 21h)

Keyword : \\.\PhysicalDrive , IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, IOCTL_DISK_GET_DRIVE_GEOMETRY, FSCTL_DISMOUNT_VOLUME

來自MSDN的操作建議, 要記得是Disk != Volume, 一個Disk 可以透過Partition 擁有多個 Volume

Aa364562.wedge(en-us,VS.85).gifTo change a volume file system

  1. Open a volume.
  2. Lock the volume.
  3. Format the volume.
  4. Dismount the volume.
  5. Unlock the volume.
  6. Close the volume handle.
廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: