セクタの読み出しをするには?


Idaken  2002-01-14 03:40:30  No: 50056  IP: [192.*.*.*]

質問です。
WindowsNT系で、FDのセクタを読み書きすることはできるのでしょうか?
できるのであればやり方を教えていただきたいのですが。

編集 削除
 2002-02-08 15:03:25  No: 50057  IP: [192.*.*.*]

はじめまして

早速ですが
:CreateFileで"\\\\.\\A:"とファイル名を指定してドライバを開く

:DeviceIoControlでFSCTL_LOCK_VOLUMEを指定してをLockする

:SetFilePointerで読み書きしたいセクタを設定する
  ※この際に、セクタ一つ分の大きさ毎にしかファイルポインタは設定できません
    設定した場合にSetFilePointerを行うと失敗する(はずです)

:WriteFile/ReadFileで読み書きの処理を行う

:DeviceIoControlでFSCTL_DISMOUNT_VOLUMEを指定してのマウントを解除する
  ※マウントする為の処理が見当たらないのでLockした時に
    一緒にされているのかも?
    これは実行しなくても問題は無いかもしれません・・・

:DeviceIoControlでFSCTL_UNLOCK_VOLUMEを指定してLockを解除する

:CloseHandleでデバイスドライバのファイルハンドルを閉じる

この手順で実行できます
詳細についてはMSDN参照と言うことで(^^;

編集 削除