//========================================================================
//TITLE:
// WinCE同步和硬盤模式的切換
//AUTHOR:
// norains
//DATE:
// Monday 22-October-2007
//Environment:
// EVC4.0 + Windows CE 5.0 Standard SDK
//========================================================================
本文一下內容基於RMI AU1200的實驗平台,且沒有更改默認的同步及硬盤模式的驅動文件名,故無法保證本文的方法適用於所有的平台.
在進行我們的文章之前,還有一件事情需要確認,就是make nk.bin時已經將兩種模式的特性添加.
如果平台符合之前所說的兩個條件,那麼離成功已經只有一步之遙,剩下的也就非常簡單的(當然之前也沒見得多復雜^_^).
接上USB線,wince是決定采用同步還是硬盤模式,取決於注冊表的參數.如果在DefaultClIEntDriver的鍵值是Serial_Class,則是同步模式;反之,如果為Mass_Storage_Class,則為硬盤模式.需要留意一點的是,device.exe在啟動後會自動加載usb的驅動.換句話說,如果系統成功啟動後然後再更改注冊表,那麼無論改為何種模式,鏈接USB線後都是之前的模式.所以,如果我們需要設置生效,需要在設置完畢後重啟機器.
說破了實在不之前,讓我們來看看模式設置的代碼:
CReg reg;
reg.Create(HKEY_LOCAL_MacHINE,TEXT("Drivers\USB\FunctionDrivers"));
TCHAR szDisp[MAX_PATH] = {0};
reg.GetValueSZ(TEXT("DefaultClIEntDriver"),szDisp,MAX_PATH);
MessageBox(NULL,szDisp,TEXT("The current value"),MB_OK);