簡體   English   中英

如何在C ++中將驅動器號轉換為物理驅動器名稱?

[英]How do I convert drive Letter to a physical drive name in c++?

我的問題是這樣的:給定一個連接到Windows計算機的脫機磁盤,如何獲得它的大寫字母?

場景:我需要為共享存儲創建一個處理程序(使用CreateFile函數),以便在DeviceIoControl函數中使用它(需要執行SCSI保留)。

“ CreateFile”功能獲取物理驅動器名稱(即\\。\\ PhysicalDisk1)或磁盤的卷號(即\\。\\ E :)。

我的問題是,我不想使用物理驅動器名稱,而只使用磁盤字母。 當磁盤處於聯機狀態時,這可以正常工作,但是當磁盤處於脫機狀態時,我也必須提供支持。

設備/磁盤處於脫機狀態時,是否可以確定字母? 我認為是有原因的,因為當我使磁盤聯機時,Windows會自動給它正確的字母。 因此,如果操作系統知道字母是什么,那么也必須有一個我也可以使用的API或工具。

謝謝,丹尼爾。

不幸的是,當驅動器離線時,該驅動器號可被可能插入的另一個驅動器使用。 因此,盡管Windows會記住特定驅動器曾經擁有的驅動器號,並且在重新插入時它會嘗試重復使用相同的驅動器號,但是如果插入了另一個驅動器,該驅動器號使用了已記住的字母,則舊驅動器將獲得不同的字母如果已插入。

但是,如果當前未連接,則無法按名稱或字母打開物理驅動器。 您將僅獲得“找不到文件”的等效內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM