OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

DeviceIoControlを使って、フロッピーをフォーマットするには?

  • 困ってます
  • 質問No.153911
  • 閲覧数614
  • ありがとう数6
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 50% (3/6)

初めて質問します。よろしくお願いします。

フロッピーをフォーマットするDLLを作っているのですが、DeviceIoControlを使ってフロッピーを 1.44M 512バイト/セクタにフォーマットするにはどうすればいいのでしょうか?

下記のようにコーディングしてみたのですがどうもうまくいきません。
DeviceIoControlは正常終了するのですが、フォーマットした(つもり)のフロッピーをエクスプローラで読もうとすると“このボリュームは認識可能なファイルシステムではありません。”と表示されてしまいます。

エクスプローラでフォーマットした時と比べ、DeviceIoControlが動作している時間が短いのでこの他に手順が必要なのかとも思ったのですが、それらしいのは見当たらず困っています。よろしくお願いします。


hFD = CreateFile( "\\\\.\\a:",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL );

FormatPara.MediaType = F3_1Pt44_512;
FormatPara.StartCylinderNumber = 0;
FormatPara.EndCylinderNumber = 79;
FormatPara.StartHeadNumber = 0;
FormatPara.EndHeadNumber = 1;
bRet = DeviceIoControl( hFD,
IOCTL_DISK_FORMAT_TRACKS,
&FormatPara,
sizeof(FormatPara),
NULL,
0,
&dwTempSize,
NULL );
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1

IOCTL_DISK_FORMAT_TRACKS では、物理フォーマットしかできないのが原因です。FAT12の論理フェーマットは自力でやる必要があります。 水をさす事になるので、書き込むのをためらっていたのですが、あえてフォーマットをするのでしたら、SHFormatDrive を呼び出すべきです。 VC++のMSDNだと、キーワードでは出てこないので、検索してみてください。
IOCTL_DISK_FORMAT_TRACKS では、物理フォーマットしかできないのが原因です。FAT12の論理フェーマットは自力でやる必要があります。

水をさす事になるので、書き込むのをためらっていたのですが、あえてフォーマットをするのでしたら、SHFormatDrive を呼び出すべきです。
VC++のMSDNだと、キーワードでは出てこないので、検索してみてください。
  • 回答No.2

No.1ですが、補足します。 プログラムのバグによって大変なことになりますから、 SHFormatDriveを呼び出しているプログラムを他人に配布する事は、自分を守る意味でも、『絶対』にやらないほうがいいですよ。 ...続きを読む
No.1ですが、補足します。
プログラムのバグによって大変なことになりますから、
SHFormatDriveを呼び出しているプログラムを他人に配布する事は、自分を守る意味でも、『絶対』にやらないほうがいいですよ。
お礼コメント
bow2001

お礼率 50% (3/6)

回答頂き、ありがとうございます。

DeviceIoControlでのフロッピーのフォーマットは大変そうですね。
SHFormatDriveも含めて他の方法を検討してみますが、
“SHFormatDriveを呼び出しているプログラムを他人に配布する事は、~『絶対』にやらないほうがいいですよ。”とは、
“フォーマットするようなプログラムは気軽に配布すべきではない”ということでしょうか?
確かに、そうかもしれません。もうちょっといろいろ考えてみます。

ありがとうございました。
(御礼が遅くなり、申し訳ありませんでした。)
投稿日時 - 2001-10-24 14:47:24
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ