檢測邏輯驅動器

2021-04-18 01:08:58 字數 1332 閱讀 7945

主要用到的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快閃儲存器連線電腦時經常面對乙個問題就是不能安全的解除安裝他,因為裝置裝置當前正在使用並提示你關掉所有可能使用這些檔案的程式和視窗,然...