主要用到的api有getlogicaldrives ,getlogicaldirvestrings, getdrivetype, getdiskfreespace.分別介紹如下:
1. dword getlogicaldrives(void)
此函式沒有引數,它的返回值是乙個掩碼,用來描述當前可用的邏輯驅動器。第0位代表驅動器a,第一位代表驅動器b,,第2位代表驅動器c,依次類推。若某一位為1,則說明該位所對應的驅動器可用,為0則相反。
2 . dword getlogicaldrivestrings(
dword nbufferlength, // 下面lpbuffer所指向的緩衝區大小
lptstr lpbuffer ) // 驅動器名緩衝區,其儲存格式為"a:/",0,"b:/",0,"c:/",0,....,0,0
3. uint getdrivetype( lpctstr lprootpathname) // 要檢測的邏輯驅動器的根目錄
返回值為:
drive_unkown 無法識別該驅動器
drive_removable 可移動磁碟
drive_cdrom 光碟
drive_fixed 固定磁碟
等。4. bool getdiskfreespace(
lpctstr lprootpathname, // 要檢測的磁碟驅動器如"c:/"
lpdword lpsectionspercluster, // 每一簇的扇區數
lpdword lpbytespersector, // 每一扇區的位元組數
lpdword lpnumberoffreeclusters, // 空閒簇數
lpdword lptotalnumberofclusters) // 總共簇數
驅動器總容量的計算:簇總數 x 每簇的扇區數 x 每扇區的位元組數
驅動器空閒容量計算:空閒簇數 x 每簇的扇區數 x 每扇區的位元組數
例:
char lpbuffer[1024];
::getlogicaldrivestrings(1024, lpbuffer);
int ndrivers = 0;
while(*(lpbuffer + ndrivers * 4) != 0)
《Windows核心程式設計》 邏輯驅動器操作
windows 中的檔案組織方式採用分層次的結構 計算機中可以安裝有多個物理驅動器,每個物理驅動器可以分為多個主分割槽和擴充套件分割槽,每個主分割槽就是乙個邏輯驅動器,而每個擴充套件分割槽可以劃分為多個邏輯驅動器,邏輯驅動器組成我們熟悉的c盤與d盤等碟符。對於每個邏輯驅動器,可以給它取乙個標號叫做 ...
驅動器屬性
include include include 要獲取一些關於驅動器的屬性,可以呼叫這些函式 1 uint getdrivetype lpctstr lprootpathname 函式有乙個引數,比如 c 是轉義字元,所以要兩個 比如 就是表示 函式返回值是無符號整型。該函式獲得的是驅動器的型別 d...
Dev Eject檢測鎖住USB驅動器的檔案
christy 3天前在板塊裡發布了乙個new thread來分享一些有趣的工具。超過6個應用,我對用於解鎖usb驅動器的dev eject比較感興趣。我們面對usb快閃儲存器連線電腦時經常面對乙個問題就是不能安全的解除安裝他,因為裝置裝置當前正在使用並提示你關掉所有可能使用這些檔案的程式和視窗,然...