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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:( X7 T9 ^2 A& I- [' m9 w7 j" t* T
     问题一:; G2 w, d% |- A5 L3 r7 @
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
% @0 P# h+ t( ?, L  l$ |因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
. c4 x2 s, F6 a$ f. V% Z
5 Z" E1 u! V' V, v, U, m
- b0 C8 M3 Q: C  u+ z4 S: U1 F6 G     问题二:, q% F1 h  C( {9 c. C
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?% c* p/ X9 @. @) Q' D+ b! v
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?, f/ A/ J6 D0 a) ^: ^: O: e& i- ~5 F
+ i" F2 |7 U. G7 P

/ u# m- p0 K& d; B     问题三:
! W( V* ]. r- a- W" l* {8 x" t3 }     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
# v& r; F0 G+ e& _我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?; i3 H, `! R7 P% e: B8 n; L
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)$ F2 C( z. k& T
5 }# [0 ]- @: y" I+ e
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
5 d. D; @, r8 T+ d( u% v9 b/ Q6 P
1 ^' R" o8 E- f# h5 V
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
7 E  U* k7 C: ?: X/ q& I
. o$ a$ P. Q' W1 Y6 L但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
$ x: j+ D# f) |+ f8 D/ Y/ J
- g1 U% C5 A! k) {' S4 \       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
- V- A8 B6 G, \是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
5 ?& V2 p7 U- e' r  W2 |3 e. R& q# T, t" E$ r
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。1 i  S! D3 @+ H; I' ]3 i

+ U; E' {+ E! _- s5 F5 W另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,4 `6 N4 @9 V" O0 T4 p6 n/ i
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"* O- b& p$ s; M+ o: l

. r( W3 U" q- q: Y! [" F# j; g6 D$ B
" ~- ~0 D+ t" ]. p: d# f) {7 r, e) W-->恩,是的' F; o# y9 V5 i9 ?- b* d
% i1 |7 ?4 i0 r& \/ K  H% H8 Y, W9 K
7 T% t! h: w7 ?& A$ U# N" N; w

: }6 N4 i; M! M8 w不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
4 A  M( \8 g! e. p) s7 p. F  x
+ _6 f1 r; E  j7 `8 ~-->恩,谢谢!5 v) D/ S% A4 S; s3 T1 ~: q4 `
, j+ N9 r$ |, l: }( j
! @/ @; G( B3 U6 @: m8 {& O5 U
- G/ w7 q/ W# s; B; i# g
另外,ADU读到的什么信息,你认为有错误呢?
* C, S1 B6 W! _( ~! S: f: s; U8 T) u3 z! H9 n8 U

2 Q0 n7 V, [4 s! B-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
  v0 q% p% ?% _1 |; J   spec 有这样的定义
" u' ~8 P1 C) T. B+ J
7 h5 R3 q* b! M- i, s0 eata6中
0 c# N% P" h  @, o0 q, Z' F- O7 M) H# O2 q
第85word:2 B3 U2 E' R/ b
15 Obsolete                            -------- 0
- Z/ Y# C3 O2 i5 Z14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   5 d9 _0 f2 y" r* E* y# m1 W/ }
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
6 m  A& q. C; \4 z1 u! F/ V$ o( J  w12 1 = WRITE BUFFER command enabled    -------- 1      吻合2 R# Q6 G6 n; p$ M- ]
11 Obsolete                            -------- 0
9 b+ l0 U2 h" D- R2 ~, b10 1 = Host Protected Area feature set enabled- 1      吻合
2 A3 n+ g$ B) H% a6 q8 K9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
+ T& J1 B$ t7 p5 Z6 K. v8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   * s6 V" d& `! D) K% u
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
/ ?; [( t2 K1 j& C6 1 = look-ahead enabled               -------- 1      吻合- n8 d7 ~  z+ z; b. s) v
5 1 = write cache enabled              -------- 1      吻合
1 [7 ^: y: [0 W- M5 h9 ]* S2 e& R4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问/ p( K$ o& ~6 R3 j0 i( X, |
3 1 = Power Management feature set enabled      1      吻合' I4 @# ^0 E  D
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   * L1 m6 M& k9 B* m4 X7 U
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
6 d5 ^5 x- Y  h9 o- E. F# q0 1 = SMART feature set enabled                    1      吻合7 H/ E. j; i, c
6 I& W, w6 c# O. ?5 g$ r
那照着这个数据的话,3469H= 0011 0100 0110 10013 ]# J  O- z# Y/ [: X  J- i% ~

' O* ]7 J; U5 S: \  v; b    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!2 K% l/ C- k6 z- V+ L/ ^+ j+ j

6 S9 R" ^7 H& g5 e& X- o1 s- U8 ~2 c$ f1 e6 P

" W% _& m' [3 j, Y" F6 ]4 f7 V* I: s% H: u$ E
(*******最新*******)
$ j6 ?: z1 L4 M# X6 D     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
( y% R; Q: L; h7 s( \' H$ j     不知道各位大哥怎么理解?
7 i1 O( L0 z' W( B/ n0 |2 m. F1 t+ I# f3 \
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-3 23:12 , Processed in 0.170984 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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