IOCTL_CDROM_RAW_RAEDを使ってCDDAの生データを読み取るプログラムを作成しましたが、エラー87「パラメータが間違っています」が発生して、データを読み取ることができません。プログラムは以下の通りです。
#define RAW_SECTOR_SIZE 2352
rawReadInfo.DiskOffset.QuadPart = startSector * RAW_SECTOR_SIZE;
rawReadInfo.SectorCount = 1;
rawReadInfo.TrackMode = CDDA;
DeviceIoControl (hCD, IOCTL_CDROM_RAW_READ,
&rawReadInfo, sizeof(RAW_READ_INFO), buf, sizeof(rawReadInfo.SectorCount * RAW_SECTOR_SIZE),
&dwNotUsed, NULL);
海外のサイトで検索してみたところ、ときどきエラー87が出る、オーディオCD(CDDA)ではOKだが、CD-ROMではダメなどのQ&Aはあったのですが、オーディオCDが全く読めないという例はなかったので、基本的には動作するはずです。パラメータもそれらの例と同様の使い方しているつもりなのですが、何故か全く動作しません。TracKModeをYellowMode2にして、CD-ROMで試してみましたが、結果は同じでした。IOCTL_CDROM_READ_TOCを用いたTOCの読み取りは問題ないので、ファイルのオープンは正しくできていると思います。
IOCTL_CDROM_RAW_RAEDを使えている人がいたら、どこに問題がありそうか教えてください。
開発環境はBorland C++Builder6で、対象はウィンドウズ
・アプリです。
No.1ベストアンサー
- 回答日時:
もう解決済みかもしれませんが、レスがないようなのでご参考まで。
...RAW_READ ではありませんが、私も
IOCTL_CDROM_GET_DRIVE_GEOMETRY がうまく行かず、聞きましたら
9x では、ASPI, NT(xp) では、SPTI で scsi へ access した方がいいのではないかと教えてもらいました。
私は、2048 bytes 読めればよいので、16 sector を (xpでは) ReadFile() で読むことで geometry を得て
今のところ済ませています。
http://www.t10.org/ftp/t10/drafts/sbc2/sbc2r15.pdf
に ANSI の説明書があります。
ご覧になったらどうでしょうか。
また、これに従うには、nt4ddk が必要ですが、
お持ちでないなら、microsoft から nt4ddk.zip を落としてきて
中から header file を取り出す必要があります。
cdda を扱っている例は、spticdda.lzh でぐぐると
ソースがあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 一眼レフカメラ RAWデータ自体に追加データの保存ができるのですか? 「Imaging Edge」操作していたら 2 2022/08/05 11:44
- 写真 写真のRAWデータについて WindowsのパソコンでRAWデータをJPEGなどに一括でたくさんの画 1 2023/07/18 02:07
- UNIX・Linux Chromebook Linux Extundeleteエラー 4 2022/07/03 17:20
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Android(アンドロイド) TIFF画像を表示できるAndroidアプリを探してます。 3 2022/05/16 09:00
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
コンパイルできません。
-
バッチからsqlplusの接続エラー...
-
fortranでプログラムを実行する...
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
HEWを使用しているのですが、こ...
-
HANDLEの宣言でのエラー
-
WindowsからLinuxへの移植
-
Handlesについて
-
1つのDLLにソースを1500個ほど...
-
dos.hについて
-
VB2010でのSQL日付フォーマ...
-
C言語でpgm形式の画像を読み込...
-
どうしてもできない!!
-
sys/time.hのインクルードがで...
-
Excelのエラーで困ってます。
-
error C3867 関数呼び出しには...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
バッチからsqlplusの接続エラー...
-
Excelのエラーで困ってます。
-
HEWを使用しているのですが、こ...
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
fortranでプログラムを実行する...
-
BC30002: 型 'ListItem' が定義...
-
VBAでファイルを開くプログラム...
-
sys/time.hのインクルードがで...
-
error C3867 関数呼び出しには...
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
LPCWSTRとchar
-
RightとLeft関数のライブ...
-
Handlesについて
-
multiple definitionというエラー
-
ACCESSのDate関数のエラー表示...
-
WindowsからLinuxへの移植
おすすめ情報