日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WINCE下创建多个文件分区

發(fā)布時(shí)間:2025/4/16 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WINCE下创建多个文件分区 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

********************************LoongEmbedded********************************

作者:LoongEmbedded(kandi)

時(shí)間:2011.01.11

類別:WINCE驅(qū)動(dòng)開發(fā)

********************************LoongEmbedded********************************

系統(tǒng):WINCE6.0+S3C2443

?

實(shí)現(xiàn)分區(qū)的是在eboot/nand.cpp下面的WriteOSImageToBootMedia中實(shí)現(xiàn)的,

?

1.創(chuàng)建一個(gè)分區(qū)的代碼如下所以

1

關(guān)于這個(gè)函數(shù)的詳細(xì)介紹,可以參考http://blog.csdn.net/LoongEmbedded/archive/2010/11/02/5981033.aspx,上面的代碼就是在基于nandflash的剩余空間(除去存放系統(tǒng)映像占用的一部分空間)創(chuàng)建FAT32的文件分區(qū)。

?

2.創(chuàng)建兩個(gè)分區(qū)

怎么實(shí)現(xiàn)呢?我在實(shí)現(xiàn)一個(gè)分區(qū)并且在系統(tǒng)啟動(dòng)后顯示kandi這個(gè)盤符的platform.reg中下面的注冊表信息

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/NANDFLASH]

??? "Prefix"="DSK"

??? "Dll"="smflash.dll"

??? "Index"=dword:1

??? "Order"=dword:0

??? "Profile"="NANDFLASH"

??? "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"

IF IMGHIVEREG

??? "Flags"=dword:00001000

ENDIF ;IMGHIVEREG

?????

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/NANDFLASH/FATFS]

??? "Flags"=dword:14

???????? "Folder"="kandi"

??? "FormatExfat"=dword:1

??? "CheckForFormat"=dword:1

??? "EnableWriteBack"=dword:1

IF IMGHIVEREG???

??? "MountAsBootable"=dword:1

ENDIF ;IMGHIVEREG

在上面的注冊表的基礎(chǔ)上添加下面的內(nèi)容:

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/NANDFLASH2]

??? "Prefix"="DSK"

??? "Dll"="smflash.dll"

??? "Index"=dword:9

??? "Order"=dword:0

??? "Profile"="NANDFLASH2"

??? "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"

IF IMGHIVEREG

??? "Flags"=dword:00001000

ENDIF ;IMGHIVEREG

?????

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/NANDFLASH2/FATFS]

??? "Flags"=dword:14

???????? "Folder"="kandi2"

??? "FormatExfat"=dword:1

??? "CheckForFormat"=dword:1

??? "EnableWriteBack"=dword:1

IF IMGHIVEREG???

??? "MountAsBootable"=dword:1

ENDIF ;IMGHIVEREG

做這些修改更新系統(tǒng)后,真的可以看到kandikandi2這兩個(gè)盤符,可是當(dāng)我把A.exe拷貝到kandi文件夾中,而把B.exe拷貝到kandi2文件夾中,然后重啟發(fā)現(xiàn)kandikandi2文件夾中都有A.exeB.exe,說明沒有真正實(shí)現(xiàn)兩個(gè)分區(qū),還只是同一個(gè)分區(qū),后來想到到在eboot/nand.cpp下面的WriteOSImageToBootMedia中實(shí)現(xiàn),就加參考實(shí)現(xiàn)一個(gè)分區(qū)的代碼做了一下修改

2

但是這樣實(shí)現(xiàn)也只能看到kandi一個(gè)盤符,問題出現(xiàn)在哪里呢?原來是調(diào)用BP_OpenPartition函數(shù)會(huì)調(diào)用GetPartitionTableIndex函數(shù),來識別BP_OpenPartition創(chuàng)建的文件分區(qū)是否已經(jīng)創(chuàng)建過,如果創(chuàng)建過,WINCE50就不會(huì)再創(chuàng)建新的同種類型的文件分區(qū)。因?yàn)?/span>GetPartitionTableIndex函數(shù)的緣故,所以理論上同種類型的文件分區(qū)只能創(chuàng)建一個(gè),但是也可以通過修改第二個(gè)BP_OpenPartition函數(shù)的第4個(gè)參數(shù)(TRUE改為FALSE)再創(chuàng)建一個(gè)兩個(gè)同種類型的文件分區(qū),如下所示

3

經(jīng)過圖3的修改,我們更新系統(tǒng)啟動(dòng)后可以看到下面的兩個(gè)盤符:

4

?

3.實(shí)現(xiàn)三個(gè)分區(qū)

有了上面的基礎(chǔ)之后,我們不難實(shí)現(xiàn)3個(gè)分區(qū),代碼如下:

5

修改更新系統(tǒng)之后,可以看到3個(gè)盤符:

6

4隱藏分區(qū)

實(shí)現(xiàn)如下:

7

這樣的系統(tǒng)起來后就看不到分區(qū)了

8

?

參考鏈接:

wince50里創(chuàng)建多個(gè)文件分區(qū)的方法

http://hi.baidu.com/galloncity/blog/item/c6553700b67d7c081c958336.html

總結(jié)

以上是生活随笔為你收集整理的WINCE下创建多个文件分区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。