作業系統實驗 獲取磁碟基本資訊

2021-10-24 10:32:54 字數 2231 閱讀 1820

(1).了解磁碟的物理組織。

(2).熟悉windows 系統如何檢視磁碟相關係數。

(3).掌握windows 系統提供的有關對磁碟操作 api。

1.相關係數資料結構說明

磁碟基本物理結構原型:

typedef struct_disk_geometry disk_geometry ;

成員說明:

(1)cylinders:磁碟的柱面數。

(2)mediatype:介質型別,如3.5英吋,1.44mb軟盤。

(3)trackspercylinder :每個柱面的磁軌數。

(4)sectorspertrack:每個磁軌的扇區數。

(5)bytespersector:每個扇區的位元組數。

2.相關api 函式介紹

(1)檔案建立--createfile()函式

原型:handle createfile(

lpctste lpfilename, //指向檔名的指標

dword dwdesiredaccess, //讀/寫訪問模式

dword dwsharemode, //共享模式

lpsecurity_attributes lpsecurityattributes, //指向安全屬性的指標

dword dwcreateionadisposition, //檔案存在標誌

dword dwflagsandattributes, //檔案屬性

handle htemplatefile //指向訪問模板檔案的控制代碼

);(2)獲取磁碟的基本資訊--deviceiocontrol()函式

原型:bool deviceiocontrol (

handle hdevice, //裝置控制代碼

dword dwiocontrolcode, //操作控制**

lpvoid lpinbuffer, //輸入資料緩衝區

dword ninbuffersize, //輸入資料緩衝區大小

lpvoid lpoutbuffer, //輸出資料緩衝區

dword noutbuffersize, //輸出資料緩衝區大小

lpdword lpbytesreturned, //可獲取的位元組計數

); 返回值:

如果函式呼叫成功,則返回值為非0值。如果函式呼叫失敗,則返回值為0。若要得到更多的錯誤資訊,可呼叫函式getlasterror()。

(一)實驗內容
編寫乙個函式,根據給出的驅動器號讀取磁碟基本資訊,包括磁碟的大小、該磁碟包括多少個扇區,該磁碟有多少個柱面,每個柱面的磁軌數、每個磁軌的扇區數、每個扇區包含的位元組數。
(二)主要**

#include "stdafx.h"

#include "010.h"

#include "winioctl.h"

#ifdef _debug

#define new debug_new

#undef this_file

static char this_file = __file__;

#endif

/using namespace std;

disk_geometry disk_info;

handle getdiskinformation();

int _tmain(int argc, tchar* ar**, tchar* envp)

handle getdiskinformation()

從實驗結果可以看出,對給定的磁碟驅動器中,本實驗能正確識別出它每個扇區有512位元組,每個磁軌有63個扇區,每個柱面有255個磁軌,共有5221個柱面。

通過本次實驗了解了磁碟主要資料結構disk_geometry中每個成員的含義,深入理解了作業系統將裝置當做檔案處理的特性,理解函式createfile()及deviceiocontrol()中每個引數的實際意義並能在本實驗中正確使用。

作業系統實驗十 獲取磁碟基本資訊

1 了解磁碟的物理組織。2 熟悉windows 系統如何檢視磁碟相關係數。3 掌握windows 系統提供的有關對磁碟操作 api。磁碟基本物理結構原型 typedef struct dtsk geometry disk geometry 1.檔案建立 函式createfile 用於開啟磁碟驅動器並...

作業系統實驗十 獲取磁碟基本資訊

1 了解磁碟的物理組織。2 熟悉windows 系統如何檢視磁碟相關係數。3 掌握windows 系統提供的有關對磁碟操作 api。1.相關係數資料結構說明 磁碟基本物理結構原型 typedef struct dtsk geometry disk geometry 成員說明 1 cylinders ...

實驗十 獲取磁碟基本資訊

1 了解磁碟的物理組織。2 熟悉windows 系統如何檢視磁碟相關係數。3 掌握windows 系統提供的有關對磁碟操作 api。磁碟基本物理結構原型 typedef struct dtsk geometry disk geometry 1.檔案建立 函式createfile 用於開啟磁碟驅動器並...