SATAのI/Oポート

blog20070705DeviceManager

blog20070705IntelSATAControllerProperty

仕事でI/Oポートを直接叩いてHDDを制御しようとしてます。NT系のWindowsでこんなことやろうとすると例外違反で落とされてしまいますので、PortTalkLink とか使うわけですが。

I/Oポートのアドレスは従来のパラレルATA(PATA)の場合、
  • Primary Master: 0x1F0
  • Primary Slave: 0x3F0
  • Secondary Master: 0x170
  • Secondary Slave: 0x370
固定でまず間違いないのですが、今回制御するHDDはシリアルATA(SATA)。SATAはソフトウェアからは極力PATAと同じに扱えるように仕様が決められているらしいのですが、I/Oポートはどれ?という疑問が。というのも、今回使うDELL Precision 370はDVDドライブ用にPATAも装備されており、上記のPrimary用I/OアドレスはPATAに割り当てられています。試しにSecondaryのI/Oアドレスを叩いてみましたが、ダメでした。

ネットで検索しても欲しい情報にはかすりもせず>_<、BIOS見てみたり、いくつかのHDDの内部情報を見るプログラムを使ってみたり。結論は灯台下暗し。デバイスマネージャに書いてありました^^;

なおSATAはMaster/Slaveの概念が無く、全部Masterドライブとして扱われるそうです。

PS この件で検索しているときに古いですがこんなのLink 見つけました。分かっている人間から見れば痛い話ですが、当人は真剣なんでしょうねぇ。

— posted by mu at 07:07 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0104 sec.
prev
2007.7
next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31