- 相關推薦
如何測試軟硬盤驅動器參數
一、如何測試驅動器類型隨著pc硬件的高速發展,各種應用軟件對外設的要求亦不斷進步,這使得有些軟件的設計者在開發軟件時需要對主機的配套設備進行檢查,以便能更好地利用這些設備。如對處理器cpu及協處理器的檢測、對驅動器的檢測等等。對于上述的測試,除cpu及協處理器的測試方法已有不少文章論述過外,還很少有對驅動器測試的論述。本文將具體先容如何測試驅動器,并給出相應的子程序源碼,讀者可根據需要將其變成一獨立程序,也可將其加進到自己的應用程序中往。
在提供的測試驅動器子程序中,使用了dos int 21h 的設備治理功能調用 44xxh(ioctl)的兩個子功能:ax=4409h 和ax=440dh。通過對what-drv子程序的調用,可得到指定驅動器的類型。該測試子程序的調用方式為:
輸進:al=驅動器標號(a,b,c,...)
程序:call what-drv
輸出:cf= 0 成功
al= 驅動器類型(提供之源碼中有各種類型說明)
ds:dx= device-params讀取參數緩沖區,共有32bytes長度
cf= 1失敗
ax=錯誤代碼
1.測試指定驅動器狀態
本子功能是測試所指定驅動器是否為單機或網絡之共享狀態輸進:ax= 4409h
bl= 0,1,2,...(0=defult,1=a,2=b,3=c,...)
中斷:int 21h
輸出:cf= 0成功
dx=返回狀態(這里僅討論dx寄存器的bit12,在返回的參數中,dx還有其它很多狀態值,本節將不在此討論)
若bit12=0,則為單機狀態
bit12=1,則為服務器共享狀態
cf= 1失敗
ax=錯誤代碼
2.讀取指定驅動器參數
本子功能將讀出指定驅動器的各種參數,包括驅動器類型、文件分配表fat大小,根目錄root大小,及其它bpb各種磁盤參數。本子程序僅讀取驅動器類型參數。
輸進:ax= 440dh,
bl= 0,1,2,...(0=defult,1=a,2=b,3=c,...)
cx= 0860h 這里 ch=08h表示磁盤驅動器
cl=60h表示讀取驅動器參數
ds∶dx=device-params指向讀取參數緩沖區,共有32 bytes長度
中斷:int 21h
輸出:cf= 0成功
ds∶dx=緩沖區包含讀出驅動器參數
cf= 1失敗
ax=錯誤代碼
3.磁盤參數區
表1為一130mm 1.2mb的軟盤驅動器參數信息(共32字節長度)。
@@08a08600.gif;表1@@
4.測試驅動器源碼(程序1)
程序1:
;------------
; check drive type
;input: al=can be any drive letter(a,b,c..)
;output: cf=0 successfully
; al=drive type will be returned as an
; errorlevel.
; ds∶dx=pointer to parameter block
; cf=1 failed
; all registers restored.
;-----------------
; errorlevel result
; --------------
; -1drive isn′t local
; 0320k/360k 130mm.drive
; 11.2m 130mm.drive
; 2720k 90mm.drive
; 3single-density 203mm.drive
; 4double-density 203mm.drive
; 5hard disk
; 6type drive
; 71.44m drive
; 8something else
;------------;
what-drv proc near
push cx ;save registers
push bx
mov bl,al
and bl,lfh ;bl=0,1,2..
mov ax,4409h
;check workstation /server
push bx
int 21h
pop bx
【如何測試軟硬盤驅動器參數】相關文章:
計算機畢業論文-如何測試軟硬盤驅動器參數03-06
WCDMA軟切換算法研究及參數設計03-07
基于FPGA的集成運放參數測試儀03-07
淺談如何提升中國文化軟實力11-09
TD-SCDMA終端測試儀端口回波損耗匹配參數分析03-07
數控機床參數的分類06-16
GSM網絡優化與參數調整11-22
論團隊軟績效管理02-28
工藝參數的匹配對牙科Ti03-18
談主宰未來企業的軟實力03-19