線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:6926
推到 Plurk!
推到 Facebook!

如何知道外接式硬碟的Drive Letter

尚未結案
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-29 18:01:12 IP:61.66.xxx.xxx 未訂閱
請問各位前輩 我在MountedDevices下看不到相對應的資訊 有哪位前輩可以指點嗎
gac
初階會員


發表:2
回覆:28
積分:26
註冊:2004-08-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-01 10:29:16 IP:220.130.xxx.xxx 未訂閱
這樣做應該可以達到你要的結果...
 
    char pBuf[255];
    DWORD dwDiskBufLen = GetLogicalDriveStrings(255, pBuf);
    std::string strAllDiskLetter(pBuf, dwDiskBufLen);        std::string::size_type headIdx = 0, tailIdx = 0;        while((tailIdx = strAllDiskLetter.find_first_of((const char)0, headIdx)) != std::string::npos)
    {
        if( GetDriveType(strAllDiskLetter.substr(headIdx, tailIdx).c_str()) == DRIVE_REMOVABLE )
        {
            AnsiString Msg = strAllDiskLetter.substr(headIdx, tailIdx).c_str();
            Msg  = "  is a REMOVABLE DRIVE";
            Application->MessageBox(Msg.c_str(), "Message", MB_OK);
        }
        headIdx = tailIdx   1;
        tailIdx = headIdx;
    }
我測試過可以測出隨身碟的磁碟代號(手邊沒有外接式硬碟),我想外接式硬碟應該也是一樣的。 試試看吧!! ---------------------- 我..........還很嫩!
------
我..........還很嫩!
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-01 17:07:22 IP:61.66.xxx.xxx 未訂閱
gac你好 很抱歉我沒說清楚 我參考DDK中的USBView可知道哪一個USB PORT有插入裝置 我想知道的是接在某一個USB PORT的USB HDD的Drive Letter 你這方法只可以抓到哪些代號的Drive Type 且USB HDD所抓到的Type是DRIVE_FIXED 如果是大拇哥的話,可以在Registry中的MountedDevices找到相關資訊 可是對HDD(內接的也一樣)來說,我卻找不出判斷方法 所以希望在此能有前輩能回答我的問題
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-02 00:59:57 IP:218.175.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=66072 【問題】如何取得實體硬碟對應的磁碟代號
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-04 18:04:33 IP:61.66.xxx.xxx 未訂閱
conundrum你好:    你這篇文章我之前也有查過 不過我找不出該如何去運用他 不知道是否可以指導    我有找幾個地方,只不過不知道該如何運用,來對應這一筆資料 實際上對應到H: HKLM\SYSTEM\MountedDevice\DosDevices\H: 數值資料5E 4D 5E 4D 00 40 EC 00 00 00 00 00 1.HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\#{53f56307-b6bf-11d0-94f2-00a0c91efb8b} SymbolicLink \\?\USBSTOR#Disk&Ven_TOSHIBA&Prod_MK3018GAP&Rev_M2.0#100&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b} 2.HKLM\SYSTEM\CurrentControlSet\Enum\USVid_04cf&pid_8818\100\Device Parameters SymbolicName \??\USB#Vid_04cf&Pid_8818#100#{a5dcbf10-6530-11d2-901f-00c04fb951ed} 3.HKLM\SYSTEM\MountedDevice\\??\Volume{c5ec44c5-770c-11d9-bbdb-00042367f2a0} 數值資料5E 4D 5E 4D 00 40 EC 00 00 00 00 00
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-04 23:32:17 IP:218.175.xxx.xxx 未訂閱
blk5743 你也好 哈哈    你的問題庵不會啦    不過你有看這一篇嗎 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=65641 MOUNTVOL 指令 與下文的 EnumDisk CompInfo.exe 等東西     找看看 windows的 regedit 被打敗 windows又攪鬼 原來是來這套 ms真芭樂 所以說 說明檔不看不行啦 那樣診解決 上面說mmc控制台 哈哈 CD-ROM 變更器 (換片匣) 在 Windows 2000 中對應為單一磁碟機代號 文章編號 : 227425 http://support.microsoft.com/default.aspx?scid=kb;zh-tw;227425&FR=1&PA=1&SD=HSCH 其他的 就看那篇 USB 介面 的偵測工具與網址 理面的東西把 基本上EnumDisk是ms提供的 所以如有需要其他資料 要再找msdn應也不是很難把 os下的說明 哈哈 ms-its:C:\WINDOWS\Help\ntcmds.chm::/mountvol.htm Mountvol建立、刪除或列出磁碟區連接點。Mountvol 為無需磁碟機代號,即可連結磁區的方法。 語法 mountvol [Drive:]Path VolumeName mountvol [Drive:]Path /d mountvol [Drive:]Path /L mountvol Drive:/s 參數 [Drive:]Path 指定將放上連接點的現存 NTFS 目錄資料夾。 VolumeName 指定連接點目標所在的磁碟區名稱。磁區名稱的格式為 \\?\Volume{GUID}\,其中 {GUID} 為全域唯一識別元 (GUID) (例如,\\?\Volume\{2eca078d-5cbc-43d3-aff8-7e8511f60d0e}\)。 /d 從指定的資料夾中移除磁碟區掛接點。 /L 為指定的資料夾列出已連接的磁碟區名稱。 /s 僅限於 Itanium 型的電腦。在指定的磁碟上掛上 EFI 系統磁碟分割。 /? 在命令提示字元上顯示說明。 備註 如果磁碟機代號不敷使用,請不使用磁碟機代號來掛上本機磁碟區。 如果需要展開磁碟區空間而不重新格式化或取代硬碟,您可以將掛接路徑新增到其他磁碟區。 這麼做的好處在於如果使用有數個掛接路徑的磁碟區,就可以使用單一磁碟機代號 (如 C:) 來存取所有本機磁碟區。雖然您可以連接本機磁碟區且仍指派了磁碟機代號,但您不需要記住每一磁碟區所對應的磁碟機代號。 格式化圖例 格式 意義 斜體 使用者必須提供的資訊 粗體 使用者必須鍵入和所示完全一樣的元素 省略符號 (...) 在命令列中可多次重複的參數 方括弧內 ([]) 選用項目 大括弧內 ({});以管線 (|) 來分隔選項。範例:{even|odd} 使用者必須從中選擇一項的選項組 新細明體字型 程式碼或程式輸出 相關主題 發表人 - conundrum 於 2005/07/05 00:11:50
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-05 08:46:25 IP:61.66.xxx.xxx 未訂閱
conundrum你好 感謝你找了這麼多資料分享 不過可能還是無法解決我的問題 因為我從程式上所得到的資訊 無法和\\??\Volume{c5ec44c5-770c-11d9-bbdb-00042367f2a0}找到關聯 所以我自然無法得知他的磁碟代號
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-07 00:28:32 IP:218.175.xxx.xxx 未訂閱
那就再看看這一篇把    How Basic Disks and Volumes Work   http://delphi.ktop.com.tw/topic.php?TOPIC_ID=74508    基本上這是 bcb版主 dllee 與 > 所找的 那天正巧碰上這
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-07-07 15:26:13 IP:61.66.xxx.xxx 未訂閱
引言: 你所得到的Symbolic Name是USB裝置的Symbolic Name,所以也可以從此方向著手,不過比較不建議使用此方式(這是配合驅動程式)。若你僅是在AP層運作,首先你需要先取得由啓䉈啂為此裝置所建立的PDO名稱,這可以使用列舉的方式將你的裝置從系統中分離出來,例如:我的裝置是『USB\Vid_0ea0&Pid_2168&Rev_0200』,而USBHUB為此裝置所建立的PDO為『USBPDO-2』。而後利用此Node,尋找其Child Device(利用CM_Get_Child),此時所得到的裝置物件是由USBSTOR驅動程式所建立的FDO,然後在利用『CM_Get_Sibling』取得由USBSTOR驅動程式所建立的『所有』PDO,然後再對每一個PDO使用CM_Get_Child,就可以列舉出每個磁碟機代號。
conundrum你好 這是我在其他站上問到的答案,但是我試不出來 我想這個問題可能是有點複雜,可能得從Driver角度才能得到答案 如果一個星期內還得不到答案,我只好把他結案了 另外,感謝你提供這麼豐富的資訊
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-07-07 17:11:21 IP:220.132.xxx.xxx 未訂閱
列舉出每個磁碟機代號 那使用 mountvol 這指令就夠了 你的問題是 要判讀是否 外接的裝置與槽位對印 文字模式下 在winxp有2個 新的 命令模式 win2000以前的os沒這指令 找了一篇 中文說明的給你 自己可以試看看 微軟儲存新技術 虛擬磁碟服務與其用戶端工具 http://www.winmag.com.tw/issue/73EXP.htm 指令名稱 1 DiskRaid 2 DiskPart 我與上述2位 先角的基本測試 是可以顯示 不過有的會顯示 此為G: 卸除式磁碟 有的只顯示 G: 基本磁碟 哈哈 應該是與硬體晶片有所區分 2000下要使用 DiskPart 指令的請下載 http://download.microsoft.com/download/win2000platform/DiskPart/1.00.0.1/nt5/en-us/DiskPart_setup.exe http://www.microsoft.com/windows2000/techinfo/reskit/tools/new/diskpart-o.asp 等看看dllee大仔 是否有要 指導一下 哈哈 發表人 - conundrum 於 2005/07/07 18:51:43
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-07-08 00:12:38 IP:218.175.xxx.xxx 未訂閱
DiskPart 使用的參數    DiskPartDiskPart.exe 文字模式命令直譯器可讓您管理物件 (磁碟、磁碟分割或磁碟區),方法是使用指令碼或從命令提示字元直接輸入。在磁碟、磁碟分割或磁碟區上使用 DiskPart.exe 指令之前,您必須首先列出並選取物件,以給予其焦點。當物件具有焦點時,您所鍵入的 DiskPart.exe 指令即可在其上執行。    您可以列出可用的物件並判定物件的編號或磁碟機代號,方法是使用 list disk、list volume 及 list partition 指令。list disk 及 list volume 指令顯示電腦上的全部磁碟及磁碟區。不過,list partition 指令僅顯示具有焦點之磁碟上的磁碟分割。當您使用 list 指令時,星號 (*) 會出現在具有焦點的物件旁邊。您按物件號碼或磁碟機代號來選取物件,如磁碟 0、磁碟分割 1、磁碟區 3 或磁碟區 C。    當您選取物件時,焦點會一直處於該物件,直到您選取其他物件。例如,如果焦點位於磁碟 0,且您在磁碟 2 上選取磁碟區 8,則焦點會從磁碟 0 轉移到磁碟 2 的磁碟區 8。部份指令會自動變更焦點。例如,當您建立新的磁碟分割時,焦點會自動切換到新的磁碟分割。    您僅可以將焦點給予選取之磁碟上的磁碟分割。如果磁碟分割具有焦點,則相關磁碟區 (如果有相關磁碟區) 亦具有焦點。當磁碟區具有焦點時,如果該磁碟區對應到單一指定磁碟分割,則相關磁碟及磁碟分割亦具有焦點。如果情況並非如此,則磁碟及磁碟分割上的焦點將會遺失。    DiskPart 指令 若要檢視指令語法,請按一下指令:    active    在基本磁碟上,將帶有焦點的磁碟分割標記為啟動。這樣會通知基本輸入/輸出系統 (BIOS) 或可延伸韌體介面 (EFI),此磁碟分割或磁碟區是有效的系統磁碟分割或系統磁碟區。    僅能將磁碟分割標記為啟動。     重要事項    DiskPart 僅驗證磁碟分割是否可以包含作業系統的啟動檔案。DiskPart 不檢查磁碟分割的內容。如果誤把磁碟分割標記為「啟動」,但該磁碟分割不包含作業系統的啟動檔案,則您的電腦可能無法啟動。  語法 active    add disk    將帶有焦點的簡單磁碟區鏡像至指定的磁碟。    語法 add disk=n [noerr]    參數 n  指定磁碟包含鏡像。您僅可以對簡單磁碟區進行鏡像處理。指定磁碟之未配置空間的大小至少要與鏡像的簡單磁碟區相同。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  assign    將磁碟機代號或掛接點指派給帶有焦點的磁碟區。如果未指定磁碟機代號或掛接點,則會指派下一個可用的磁碟機代號。如果磁碟機代號或掛接點已在使用中,則會產生錯誤。    使用 assign 指令,您可以變更與卸除式磁碟機相關的磁碟機代號。    您不能向系統磁碟區、開機磁碟區或包含分頁檔的磁碟區指派磁碟機代號。此外,您僅能夠將磁碟機代號指派給基本 MSDATA 磁碟分割,而無法指派給「原始設備廠商 (OEM)」磁碟分割或 GUID 磁碟分割表格 (GPT) 磁碟分割。    語法 assign [{letter=d|mount=Path}] [noerr]    參數 letter=d  要指派給磁碟區的磁碟機代號。  mount=Path  要指派給磁碟區的掛接點路徑。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  break disk    僅套用到動態磁碟。將鏡像磁碟區中斷成兩個簡單磁碟區。其中一個簡單磁碟區會保留鏡像磁碟區的磁碟機代號及掛接點,而另一個簡單磁碟區會得到焦點,以便您可以為其指派磁碟機代號。    預設會保留鏡像兩部份中的內容。每一半都成為一個簡單磁碟區。藉由使用 nokeep 參數,您僅將鏡像的一半保留為簡單磁碟區,而將另一半刪除並將其轉換為可用空間。沒有一個磁區會接收焦點。    語法 break disk=n [nokeep] [noerr]    參數 n  指定包含鏡像磁碟區的磁碟。  nokeep  指定僅保留鏡像磁碟區的一部份;將另一部份刪除並轉換為可用空間。磁碟區或可用空間都無法得到焦點。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  clean    從具有焦點的磁碟移除部份或全部磁碟分割或磁碟區格式化。在主要開機記錄 (MBR) 磁碟上,僅覆寫 MBR 磁碟分割資訊及隱藏磁扇區資訊。在 GUID 磁碟分割表格 (GPT) 磁碟上,會覆寫 GPT 分割資訊 (包括保護的 MBR)。無隱藏磁扇區資訊。    語法 clean [all]    參數 all  指定磁碟上的每個及全部磁扇區是空的,如此會完全刪除磁碟上所包含的全部資料。  convert basic    將空的動態磁碟轉換為基本磁碟。    語法 convert basic [noerr]    參數 noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  convert dynamic    將基本磁碟轉換為動態磁碟。    語法 convert dynamic [noerr]    參數 noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  convert gpt    在 Itanium 電腦上,將主要開機記錄 (MBR) 磁碟分割類型的空基本磁碟轉換為 GUID 磁碟分割表格 (GPT) 磁碟分割類型的基本磁碟。     重要事項    若要將磁碟轉換為 GPT 磁碟,該磁碟必須為空磁碟。在轉換磁碟之前備份您的資料,然後刪除所有的分割區或磁碟區。  語法 convert gpt [noerr]    參數 noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  convert mbr    在 Itanium 電腦上,將 GUID 磁碟分割表格 (GPT) 磁碟分割類型的空基本磁碟轉換為主要開機記錄 (MBR) 磁碟分割類型的基本磁碟。     重要事項    若要將磁碟轉換為 MBR 磁碟,該磁碟必須為空磁碟。在轉換磁碟之前備份您的資料,然後刪除所有的分割區或磁碟區。  語法 convert mbr [noerr]    參數 noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  create partition efi    在 Itanium 的電腦上,在 GUID 磁碟分割表格 (GPT) 的磁碟上建立可延伸韌體介面 (EFI) 系統磁碟分割。建立磁碟分割之後,焦點會自動移到新磁碟分割。    語法 create partition efi [size=n] [offset=n] [noerr]    參數 size=n  分割區的大小以 MB 表示。如果沒有指定大小的話,則分割區會繼續,直到目前的區域中沒有多餘的可用空間為止。  offset=n  建立分割的位元組位移。如果沒有指定位移的話,則分割區會置於足夠容納分割區的第一磁碟範圍內。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  create partition extended    在目前的磁碟機上建立延伸磁碟分割。建立磁碟分割之後,焦點會自動移到新磁碟分割。每個磁碟僅能建立一個延伸磁碟分割。如果您嘗試在另一個延伸磁碟分割中建立延伸磁碟分割,則此指令會失敗。在建立邏輯磁碟機之前,必須建立延伸磁碟分割。    語法 create partition extended [size=n] [offset=n] [noerr]    參數 size=n  延伸磁碟分割的大小以 MB 表示。如果沒有指定大小的話,則磁碟分割會繼續,直到目前的區域中沒有多餘的可用空間為止。此欄位大小是嵌入式磁柱型。大小接近於最近的磁柱邊界。例如,如果您指定大小為 500 MB,則分割區會設為 504 MB。  offset=n  只套用到主要開機記錄 (MBR)磁碟。建立分割的位元組位移。如果沒有指定位移的話,磁碟分割將會開始於磁碟的第一個可用空間開端上。此位移大小是嵌入式磁柱型。位移接近於最近的磁柱邊界。例如,如果您指定位移為 27 MB,而磁柱大小為 8 MB,此位移會設為 24 MB 界限。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  create partition logical    在延伸磁碟分割中建立邏輯磁碟。建立磁碟分割之後,焦點會自動移到新邏輯磁碟機。    語法 create partition logical [size=n] [offset=n] [noerr]    參數 size=n  邏輯磁碟機的大小以 MB 表示。如果沒有指定大小的話,則分割區會繼續,直到目前的區域中沒有多餘的可用空間為止。  offset=n  只套用到主要開機記錄 (MBR)磁碟。建立邏輯磁碟機的位元組位移。位移是嵌入式磁柱型 (換句話說,位移接近於完全填寫所使用的磁柱大小)。如果沒有指定位移的話,則分割區會置於足夠容納分割區的第一磁碟範圍內。分割區至少只要由 size=n 指定位元數。如果為邏輯磁碟機指定大小,則其必須小於延伸磁碟分割。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  create partition msr    在 Itanium 的電腦上,在 GUID 磁碟分割表格 (GPT) 磁碟上建立 Microsoft Reserved (MSR) 磁碟分割。     警告    應小心使用 create partition msr 指令。因為 GPT 磁碟要求特定的磁碟分割格式,所以建立 Microsoft 保留的磁碟分割會導致磁碟無法讀取。在用於啟動 Windows XP 64-Bit Edition 的 GPT 磁碟上,「EFI 系統」磁碟分割為磁碟上的第一個磁碟分割,其後是「Microsoft 保留的」磁碟分割。僅用於資料儲存的 GPT 磁碟不具有「EFI 系統」磁碟分割;「Microsoft 保留的」磁碟分割為第一個磁碟分割。  Windows XP 64-Bit Edition 不掛接 Microsoft 保留的磁碟分割。您無法在其上儲存資料,亦無法將其刪除。    語法 create partition msr [size=n] [offset=n] [noerr]    參數 size=n  磁碟分割的大小以 MB 表示。分割區至少只要由 size=n 指定位元數。如果沒有指定大小的話,則磁碟分割會繼續,直到目前的區域中沒有多餘的可用空間為止。  offset=n  建立分割的位元組位移。磁碟分割啟動於 offset=n 所指定的位元組位移。它是嵌入式磁扇區;換句話說,位移接近於完全填寫所使用的磁扇區大小。如果沒有指定位移的話,則分割區會置於足夠容納分割區的第一磁碟範圍內。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  create partition primary    在目前的基本磁碟上建立主要磁碟分割。建立磁碟分割之後,焦點會自動移到新磁碟分割。磁碟分割本身不接受磁碟機代號。您必須使用 assign 指令來將磁碟機代號指派給磁碟分割。    語法 create partition primary [size=n] [offset=n] [ID={byte|GUID}] [noerr]    參數 size=n  磁碟分割的大小以 MB 表示。如果沒有指定大小的話,則磁碟分割會繼續,直到目前的區域中沒有多餘的可用空間為止。其大小是嵌入式磁柱型。大小接近於最近的磁柱邊界。例如,如果您指定大小為 500 MB,則磁碟分割會設為 504 MB。  offset=n  建立分割的位元組位移。如果沒有指定位移的話,磁碟分割將會開始於磁碟的第一個可用空間開端上。若為主要開機記錄 (MBR) 磁碟,位移為嵌入式磁柱型。位移接近於最近的磁柱邊界。例如,如果您指定位移為 27 MB,而磁柱大小為 8 MB,此位移會設為 24 MB 界限。  ID={byte|GUID}  僅供「原始設備廠商 (OEM)」使用。   警告    使用此參數建立磁碟分割可能導致電腦當機或無法啟動。除非您是具有 GPT 磁碟經驗的 OEM 或 IT 專業人士,否則請不要使用 ID=byte | GUID 參數在 GPT 磁碟上建立磁碟分割。可行的方法就是,在 GPT 磁碟上使用 create partition efi 指令建立 EFI 系統磁碟分割,使用 create partition msr 指令建立 Microsoft 保留的磁碟分割,及使用 create partition primary 指令 (不使用 ID=byte | GUID 參數) 建立主要磁碟分割。  若為 MBR 磁碟,您可以為磁碟分割指定十六進位格式的磁碟分割類型位元組。如果未在 MBR 磁碟上指定磁碟分割類型位元,則 create partition primary 指令會建立類型 0x6 的磁碟分割。可使用 ID=byte | GUID 參數指定任何磁碟分割類型位元。DiskPart 不會檢查磁碟分割類型位元的正確性,也不會執行任何其他 ID 參數檢查。    對於 GPT 磁碟,您可以為要建立的磁碟分割指定磁碟分割類型 GUID。  EFI 系統磁碟分割:c12a7328-f81f-11d2-ba4b-00a0c93ec93b  Microsoft Reserved (MSR) 磁碟分割:e3c9e316-0b5c-4db8-817d-f92df00215ae  MSDATA 磁碟分割:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7  動態磁碟上的 LDM 中繼資料磁碟分割:5808c8aa-7e8f-42e0-85d2-e1e90434cfb3  動態磁碟上的 LDM 資料磁碟分割:af9b60a0-1431-4f62-bc68-3311714a69ad  如果未指定磁碟分割類型 GUID,則 create partition primary 指令會建立 MSDATA 磁碟分割。可使用 ID={byte | GUID} 參數指定任何磁碟分割類型位元。DiskPart 不會檢查磁碟分割 GUID 的正確性,也不會執行任何其他 ID 參數檢查。    noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  create volume raid    在指定的動態磁碟上建立 RAID-5 磁碟區。建立磁碟區之後,焦點會自動移到新磁碟區。    語法 create volume raid [size=n] [disk=n[,[n,...][noerr]    參數 size=n  磁碟區會以 MB 為單位,佔住每一個磁碟中的磁碟空間數量。如果未給定大小,則會建立最大量的 RAID-5 磁碟區。具有最小可用連續剩餘空間的磁碟決定 RAID-5 磁碟區大小,並會從每張磁碟配置相同數量的空間。因為同位檢查需要部份磁碟空間,所以 RAID-5 磁碟區中可用磁碟空間的實際數量小於磁碟空間的總數量。  disk=n  建立磁區的動態磁碟與 size=n 相等的空間數量會配置於每個磁碟上。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  create volume simple    建立簡單磁碟區。建立磁碟區之後,焦點會自動移到新磁碟區。    語法 create volume simple [size=n] [disk=n] [noerr]    參數 size=n  磁碟區大小以 MB 表示。如果未給定大小,則新磁碟區會佔用磁碟上剩餘的空間。  disk=n  建立磁碟區的動態磁碟。如果未給定磁碟,則會使用目前的磁碟。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  create volume stripe    在指定的磁碟上建立等量磁碟區。建立磁碟區之後,焦點會自動移到新磁碟區。    語法 create volume stripe [size=n] [disk=n[,[n, ][noerr]    參數 size=n  磁碟區會以 MB 為單位,佔住每一個磁碟中的磁碟空間數量。如果未給定大小,則新磁碟區會佔用最小磁碟上剩餘的空間,及每個後續磁碟上等量的空間。  disk=n  建立磁區的動態磁碟與 size=n 相等的空間數量會配置於每個磁碟上。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  delete disk    從磁碟清單刪除遺失的動態磁碟。    語法 delete disk [noerr] [override]    參數 noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  override  啟用 DiskPart 來刪除磁碟上的全部簡單磁碟區。如果磁碟包含鏡像磁碟區的一半,則會刪除磁碟上的一半鏡像。如果磁碟屬於 RAID-5 磁碟區,則 delete disk override 指令失敗。  delete partition    使用焦點刪除基本磁碟上的磁碟分割。您不能刪除系統磁碟分割、開機磁碟分割或包含作用中分頁檔或損毀傾印 (記憶體傾印) 的任何磁碟分割。     警告    刪除動態磁碟上的磁碟分割可能會刪除磁碟上的全部離線 動態磁碟區,從而破壞全部資料並將該磁碟轉換為基本磁碟。若要刪除動態磁碟區,應使用 delete volume 指令。  磁碟分割可以從動態磁碟刪除,但是無法建立。例如,可以在動態 GPT 磁碟上刪除無法辨識的 GUID 磁碟分割表格 (GPT) 磁碟分割。刪除此類磁碟分割不會導致結果剩餘空間成為可用的。此指令特別用於在無法使用 clean 指令的緊急情況下,在損壞的離線動態磁碟上回收空間。    語法 delete partition [noerr] [override]    參數 noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  override  啟用 DiskPart 來刪除各種類型的磁碟分割。通常,DiskPart 僅讓您刪除已知資料磁碟分割。  delete volume    刪除選取的磁碟區。您無法刪除系統磁碟區、開機磁碟區,或任何包含作用中分頁檔或損毀傾印 (記憶體傾印) 的磁區。    語法 delete volume [noerr]    參數 noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  detail disk    顯示選定磁碟的內容及該磁碟上的磁碟區。    語法 detail disk    detail volume    顯示目前磁碟區所位於的磁碟。    語法 detail volume    exit    結束 DiskPart 指令直譯器。    語法 exit    extend    將具有焦點的磁碟區延伸到下一個連續的未配置空間。對於基本磁碟區,未配置空間必須與具有焦點的磁碟分割在相同的磁碟上,而且必須遵循 (具有較高的磁扇區位移) 具有焦點的磁碟分割。動態的簡單磁區或跨距磁區可延伸到任何動態磁碟上任何空的空間。使用此指令,您可以將現有磁碟區延伸到新建的空間上。    如果先前已使用 NTFS 檔案系統格式化磁碟分割,則檔案系統會自動延伸以佔用較大的磁碟分割。無資料遺失。如果先前使用任何不同於 NTFS 的檔案系統格式來格式化磁碟分割,則指令會失敗,且不會變更磁碟分割。    您無法延伸目前的系統或開機磁碟分割。    語法 extend [size=n] [disk=n] [noerr]    參數 size=n  要新增到目前磁碟分割的空間數量 (以 MB 為單位)。如果未指定大小,則可延伸磁碟,讓其佔用下一個連續未配置空間的全部。  disk=n  延伸磁區的動態磁碟。與 size=n 相等的空間數量會配置於磁碟上。如果未指定任何磁碟,則會在目前的磁碟上延伸磁碟區。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  help    顯示可用指令的清單。    語法 help    import    將外部磁碟群組匯入本機的磁碟群組。import 指令會匯入每個與具有焦點之磁碟在相同群組中的磁碟。    語法 import [noerr]    參數 noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  list disk    顯示磁碟清單及其相關資訊,例如,其大小、可用空間數量、磁碟是基本磁碟還是動態磁碟,以及磁碟使用的是主要開機記錄 (MBR) 還是 GUID 磁碟分割表格 (GPT) 磁碟分割樣式。使用星號 (*) 標記的磁碟具有焦點。    語法 list disk    list partition    顯示目前磁碟中磁碟分割表格所列示的磁碟分割。在動態磁碟上,這些磁碟分割可能不會對應磁碟上的動態磁碟區。此差異發生的原因是,動態磁碟在系統磁碟區或開機磁碟區 (如果位於磁碟) 的磁碟分割表格中包含的項目,以及為了將空間保留給動態磁碟區使用而佔據磁碟剩餘空間的磁碟分割。    語法 list partition    list volume    顯示所有磁碟上基本及動態磁碟區的清單。    語法 list volume    online    讓具有焦點的離線磁碟或磁碟區處於線上。    語法 online [noerr]    參數 noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  rem    提供向指令碼新增註解的方法。    語法 rem    範例 rem 這些指令設定 3 個磁碟機。    create partition primary size=2048    assign d:    create partition extend    create partition logical size=2048    assign e:    create partition logical    assign f:    remove    從帶有焦點的磁碟區移除磁碟機代號或掛接點。如果使用 all 參數,則會移除全部目前磁碟機代號及掛接點。如果未指定磁碟機代號或掛接點,則 DiskPart 會移除其遇到的第一個磁碟機代號或掛接點。    remove 指令可用來變更與可移除磁碟機相關的磁碟機代號。您無法移除系統、開機或分頁磁碟區上的磁碟機代號。此外,您無法移除下列磁碟分割的磁碟機代號,例如,OEM 磁碟分割、任何具有無法辨識 GUID 的 GPT 磁碟分割,或任何特殊、非資料 GPT 磁碟分割 (如 EFI 系統磁碟分割)。    語法 remove [{letter=d|mount=Path [all]}] [noerr]    參數 letter=d  要移除的磁碟機代號。  mount=Path  要移除的掛接點路徑。  all  移除全部目前磁碟機代號及掛接點。  noerr  僅適合執行指令。當遇到錯誤時,指定 DiskPart 如同未發生錯誤一樣繼續處理指令。沒有 noerr 參數時,錯誤會使 DiskPart 結束並產生錯誤碼。  rescan    找出可能已新增到電腦的新磁碟。    語法 rescan    retain    準備用於開機或系統磁碟區的現有動態簡單磁碟區。    在 x86 的電腦上,在具有焦點的動態簡單磁碟區的主要開機記錄 (MBR) 中建立磁碟分割項目。若要建立 MBR 磁碟分割,動態簡單磁碟區必須啟動於磁柱統一的位移,且其大小必須為整數數目的磁柱。    在 Itanium 的電腦上,在具有焦點的動態簡單磁碟區上的 GUID 磁碟分割表格 (GPT) 中建立磁碟分割項目。     注意事項    retain 指令僅用於「自動安裝」期間或僅由「原始設備廠商 (OEM)」使用。  語法 retain    select disk    選取指定的磁碟並將焦點移至其上。    語法 select disk=[n]    參數 n  接收焦點之磁碟的磁碟編號。如果未指定磁碟編號,則 select 會列出目前具有焦點的磁碟。您可以使用 list disk 指令來檢視電腦上全部磁碟的編號。  select partition    選取指定的磁碟分割,並為其提供焦點。如果未指定磁碟分割,則 select 指令會列示具有焦點的目前磁碟分割。您可以使用 list partition 指令來檢視目前磁碟上的全部磁碟分割編號。    語法 select partition=[{n|d}]    參數 n  接收焦點之磁碟分割的編號。  d  接收焦點之磁碟分割的磁碟機代號或掛接點路徑。  select volume    選取指定的磁碟區並將焦點移至其上。如果未指定磁區,則 select 指令會列示具有焦點的目前磁區。您可以透過編號、磁碟機代號或掛接點路徑來指定磁碟區。在基本磁碟上,選取磁碟區亦會提供對應的磁碟分割焦點。您可以使用 list volume 指令來檢視電腦上全部磁碟區的編號。    語法 select volume=[{n|d}]    參數 n  接收焦點的磁碟區編號。  d  接收焦點之磁碟區的掛接點路徑及磁碟機代號。  DiskPart 指令碼 使用 DiskPart,您可以建立指令碼來自動操作磁碟相關工作,如建立磁碟區或將磁碟轉換為動態磁碟。如果您是在使用「自動安裝」或 Sysprep (其僅支援建立開機磁碟區) 來調配 Windows,則將這些工作指令碼化會很有用。    若要啟動 DiskPart 指令碼,請在命令提示字元中鍵入:    DiskPart /S scriptname.txt    其中 scriptname.txt 為包含指令碼的文字檔案名稱。    若要將 DiskPart 的指令碼輸出重新導入檔案,請鍵入:    DiskPart /S scriptname.txt > logfile.txt    其中 logfile.txt 為 DiskPart 撰寫其輸出的文字檔案名稱。    DiskPart 啟動時,DiskPart 版本及電腦名稱會顯示於命令提示字元中。如果 DiskPart 在試圖執行指令碼化工作時發生錯誤,則 DiskPart 預設會停止處理指令碼並顯示錯誤碼 (除非您已指定了 noerr 參數)。不過,DiskPart 總是在發生語法錯誤時傳回錯誤,無論您是否使用了 noerr 參數。noerr 參數可讓您執行有用的工作,如使用單一指令碼來刪除全部磁碟上的全部磁碟分割 (而不考量磁碟的總數)。    下表列出 DiskPart 錯誤碼:    錯誤 說明  0 未發生錯誤。執行整個指令碼過程中未發生失敗。  1 發生嚴重例外狀況。可能發生嚴重的問題。  2 為 DiskPart 指令指定了錯誤的參數。  3 DiskPart 無法開啟指定的指令碼或輸出檔案。  4 DiskPart 使用的一項服務傳回失敗。  5 發生指令語法錯誤。指令碼失敗的原因是,未正確選取物件或物件對於該指令無效。    也可以利用 list volume,list disk 這2個參數 比對資料 下面的圖是40G的hdd  G:\是usb的     發表人 - conundrum 於 2005/07/08 00:21:42
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-07-08 10:51:26 IP:61.66.xxx.xxx 未訂閱
引言: 很冒然請問你真的有試過 我說的東西嗎?我有試過 基本上這幾個搭配 要知道真的不是很難真的還是搞不清楚,望你指導
以下是我用你給的tools找出的資料 =================================================== enumdisk.exe Properties for Device 2 Device ID: USBSTOR\DiskTOSHIBA_MK3018GAP_______M2.0 Adapter Properties ------------------ Bus Type : USB Max. Tr. Length: 0x10000 Max. Phy. Pages: 0x11 Alignment Mask : 0x0 Device Properties ----------------- Device Type : Direct Access Device (0x0) Removable Media : No Vendor ID : TOSHIBA Product ID : MK3018GAP Product Revision: M2.0 Inquiry Data from Pass Through ------------------------------ Device Type: Direct Access Device (0x0) Vendor ID : TOSHIBA Product ID : MK3018GAP Product Rev: M2.0 Vendor Str : ============================================================ compinfo.exe Drive Information : Drv Type Label Type Serial No. Free Space Disc Size Full C:\ Fixed NTFS 94D2-0BEF 5,225MB 24,857MB 78% D:\ CDROM E:\ Fixed Data NTFS D754-0E41 6,717MB 30,328MB 77% F:\ Fixed EWINXP FAT32 3CFE-39A3 1,133MB 2,041MB 44% G:\ Removable FAT 0000-0000 958MB 999MB 4% H:\ Fixed HPNOTEBOOK FAT32 2903-1902 1,856MB 28,587MB 93% 以下的資訊都沒看到外接式硬碟[H:]的資料 Physical Disk Information: TID Device Version Type 0 FUJITSU MHT2060AH 006C Direct Access Device TID Device Version Type 0 PHILIPS DVD -RW SDVD8432LH75 CDROM Device (Removable) Hard Drive Information : Primary Controller - Master drive : Model Number : FUJITSU MHT2060AH Serial Number : NP05T4725RWV Firmware Version : 006C Buffer Size : 8192 Kbytes Drive Size : 60.011 GB CDROM Information : Product ID : PHILIPS DVD -RW SDVD8432 Type : ATAPI Burner Read Capabilities : CD-R, CD-RW, DVD-ROM, DVD-R Write Capabilities : CD-R, CD-RW, DVD-R
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-07-09 12:58:06 IP:220.132.xxx.xxx 未訂閱
http://www.cpuid.org/index.php     這樣好了你也可以看看此軟體 直接找SMBUS規格 來處理把 SMBUS 的資料可會更艱難 http://torry.net/authorsmore.php?id=3325&SID=5a6ee3f366fdf7faa4e8559e6d8d5440 http://torry.net/apps/utilities/hardware/hwmon.zip?SID=5a6ee3f366fdf7faa4e8559e6d8d5440 http://delphi.ktop.com.tw/topic.php?topic_id=62793 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=74625 想到 ktop 回憶錄 這幾篇看看 http://delphi.ktop.com.tw/topic.php?topic_id=38317 http://delphi.ktop.com.tw/topic.php?topic_id=23453 http://delphi.ktop.com.tw/topic.php?topic_id=27077 http://delphi.ktop.com.tw/topic.php?topic_id=38394 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30705 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=38548 此篇mkbobo 網友發表 須注意範例 要修正
引言: for(DWORD idx =0 ;idx< dwDeviceCnt -1 ;++idx) if(buf[idx] ==0 ) buf[idx] =' ';
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=23214 http://delphi.ktop.com.tw/topic.php?topic_id=44316 此篇可以 先停再抓 就知那一槽id 這樣就不用 看SMBUS規格 卡方便 yeahware 網站的停用usb範例 庵把它傳上以免改天他網站找不到 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=74628 這網站在第一次回應時就有連結 http://www.usb.org/developers/tools/ http://www.usb.org/developers/tools/USBCV121.msi http://www.usb.org/developers/tools/USBHTT.msi 發表人 - conundrum 於 2005/07/09 15:42:51
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-07-11 09:26:20 IP:61.66.xxx.xxx 未訂閱
conundrum你好: 感謝你做了這麼多的回應 我想我會好好花時間把你最新的這篇對應的鏈結好好的研究一番 這篇我想就暫時到此了,感謝你的幫忙
系統時間:2024-04-19 16:35:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!