找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 10758|回复: 4

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:6 q# P! _/ z- ~" s
     问题一:) ~3 P4 Q/ `/ P5 Q' q. l
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?/ h7 r: j* M& Q* c- }6 `0 `9 ?8 L
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
9 u& K0 G# i. f8 b* O) r
: G% b! b% E1 l1 P9 c; U9 G2 l0 ]6 w/ c' L8 @5 d& H( c# x
     问题二:
1 z5 z* L( @8 B$ {     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?" j* {6 [/ Y* j$ V
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
' J6 Y+ ^: f1 a- o) k- |7 O
! T$ x, `9 f: O" `* K) h# N4 g. ?9 a1 Y
     问题三:
3 m* T5 G+ Y% L; j7 ]; v. \     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
: r+ c2 h5 A! y我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?( w; u5 w+ w, \% ?  l% @. R
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)" B) d1 ~- C4 ^

" i# _& _2 Y  k+ d- x" `[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。* a% A3 u7 s+ {
3 p, a& w6 D0 D% I3 g; F) g
: J# g) K& H2 b+ z, H6 O( d
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
- D' r* V& v. a# h" W
& ]" z% I* K! q* i1 U但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
7 s5 i0 o$ z1 S; T2 t* J3 |/ [/ E( j/ O
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
0 J( \: E/ w+ o2 M1 o是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
; N1 k9 ]9 ^) Y; }& M8 Z' n/ z0 r" r+ s/ p: J
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。+ G1 [! b" a$ r* m& B3 p" {9 k

! t) `/ m! K$ l( B另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
* a" b' r  E( D  q是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"2 Y6 n0 H2 B* D  [4 x# M

9 C- F. i, u2 k
% p5 F' z5 r# C# o2 c( |' q-->恩,是的
9 \' ]& d; U* j# _
3 W! x0 g1 }- d, |( }
3 \! I9 C# B& N6 o# _, Y9 m5 G, y  G1 X# S6 x' @1 @/ H
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。# I. K  G5 P* v( O& y
3 ~) r: g: u* r
-->恩,谢谢!) i9 ]( v: p6 D/ j1 Q4 S7 U
5 Q# M: g* K7 _3 t6 {

4 H8 p/ m, ~# i; b9 w# N
) {4 E! K. t8 e另外,ADU读到的什么信息,你认为有错误呢? 5 S% |+ ]: Z' o4 `( O. X- I, e

: A' ^3 M* l) I" R4 Z2 V6 o, Y+ b( u: b* ~  I- f7 z( L: d
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
+ B4 {! Z( B* f4 ?! N# S+ u. s   spec 有这样的定义
4 O1 O/ `9 _$ _! n0 D: P
& s2 A* z1 }! Eata6中
' D5 ~, J2 S: ?
7 r, @4 c  m4 s第85word:
) \  H! G5 l" ^5 ~' a15 Obsolete                            -------- 0) ]  X/ \* E7 e5 O9 |, X9 X
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
* v9 X1 g8 ?% H13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   5 V* l+ s) B3 Q& l
12 1 = WRITE BUFFER command enabled    -------- 1      吻合! v; P1 D! X/ B8 [% M6 {$ a. [
11 Obsolete                            -------- 0
: \8 a0 y$ d+ |7 N1 v5 `$ t( j10 1 = Host Protected Area feature set enabled- 1      吻合
5 D3 p& `; i  U' @; k9 i8 P( U9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
, P% B3 w1 K( F0 k( j8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
9 x) x1 R8 J$ m! E7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
4 e5 _4 Z: r1 Q- U  t6 1 = look-ahead enabled               -------- 1      吻合
) ~/ D$ L" K+ \- P5 1 = write cache enabled              -------- 1      吻合
: U6 e% U* k7 w: X2 x6 M4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问8 W9 m7 `1 u# U; n' J) K$ g0 k: U0 `6 J
3 1 = Power Management feature set enabled      1      吻合
; z( @0 S" x' r. U! N, F0 a2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   & w' b1 G/ t0 C6 S6 y1 |
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   ; f- P4 P7 p# A* v
0 1 = SMART feature set enabled                    1      吻合& b& w5 j* ]( K4 X. t0 l1 Y( @
" m( u0 |: C4 O
那照着这个数据的话,3469H= 0011 0100 0110 1001
, z' [+ [) P# j7 |) u' \. Z. l, b1 U% @
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
7 ]3 `2 j, b5 o, C) F# E/ u) {2 Q& E$ Y$ b) X- A

% }2 h! w: k# }, R8 P& [% e2 V1 A3 {6 M3 ~2 t) M  E

9 P8 G. B5 w( h8 Y9 p(*******最新*******)) [, b5 z& M8 p% U' n( l9 i* R
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
7 M- L. c9 K' u; U  G. X, y0 D     不知道各位大哥怎么理解?  E  _- W3 q3 d- a

% M( ?" {- }4 P2 T* a, r1 i  ?3 e[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-4-4 14:31 , Processed in 2.802543 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表