(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 用於開啟磁碟驅動器並...