如何知道外接式硬碟的Drive Letter |
尚未結案
|
blk5743
高階會員 ![]() ![]() ![]() ![]() 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
|
gac
初階會員 ![]() ![]() 發表:2 回覆:28 積分:26 註冊:2004-08-16 發送簡訊給我 |
這樣做應該可以達到你要的結果...
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 發送簡訊給我 |
|
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
blk5743
高階會員 ![]() ![]() ![]() ![]() 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
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 發送簡訊給我 |
blk5743 你也好 哈哈 你的問題庵不會啦 不過你有看這一篇嗎
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=65641
MOUNTVOL 指令 與下文的 EnumDisk CompInfo.exe 等東西
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
blk5743
高階會員 ![]() ![]() ![]() ![]() 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
|
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
blk5743
高階會員 ![]() ![]() ![]() ![]() 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
引言: 你所得到的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 發送簡訊給我 |
列舉出每個磁碟機代號
那使用 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 發送簡訊給我 |
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的
![]() |
blk5743
高階會員 ![]() ![]() ![]() ![]() 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
引言: 很冒然請問你真的有試過 我說的東西嗎?我有試過 基本上這幾個搭配 要知道真的不是很難真的還是搞不清楚,望你指導以下是我用你給的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 發送簡訊給我 |
http://www.cpuid.org/index.php
![]() ![]() 引言: 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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |