IDiscFormat2RawCD
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
Disc At Once (DAO) モード (無中断記録とも呼ばれます) を使用して raw イメージをディスクデバイスに書き込むには、このインターフェースを使用します。
解説(Remarks)
スクリプトで MsftDiscFormat2RawCD オブジェクトを作成するには、CreateObject の呼び出し時にプログラム識別子として IMAPI2.MsftDiscFormat2RawCD を指定します。
書き込み (burn) 操作中に電源状態の遷移 (ユーザーのログオフやシステムのサスペンドなど) が発生し、書き込み処理が中断されてデータが失われる可能性があります。プログラミング上の考慮事項については、Preventing Logoff or Suspend During a Burn を参照してください。
メソッド 24
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
現在のメディアを排他アクセス用にロックします。(IDiscFormat2RawCD.PrepareMedia)
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
使用するレコーダーを選択するまで、メディアを準備することはできません。
値: 0xC0AA060A |
|
|
メディアが "prepared" (準備済み) の状態で解放されていない場合、要求された操作は無効です。
値: 0xC0AA0603 |
|
|
1 つ以上の引数が無効です。
値: 0x80070057 |
|
|
ポインターが無効です。
値: 0x80004003 |
|
|
原因不明のエラーです。
値: 0x80004005 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
デバイスがタイムアウト期間内にコマンドを受け付けませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。
値: 0xC0AA020D |
|
|
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。
値: 0xC0AA02FF |
|
|
メディアが裏返しに挿入されています。
値: 0xC0AA0204 |
|
|
ドライブが準備中であることを報告しました。しばらくしてから要求を再試行してください。
値: 0xC0AA0205 |
|
|
デバイスにメディアがありません。
値: 0xC0AA0202 |
|
|
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。
値: 0xC0AA0206 |
|
|
ドライブが、書き込みの終了処理などの長時間を要する操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。
値: 0xC0AA0207 |
|
|
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または "buffer underrun free" 設定を有効にすることで解決する場合があります。
値: 0xC0AA0300 |
|
|
メディアに互換性がないか、物理フォーマットが不明です。
値: 0xC0AA0203 |
|
|
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。
値: 0xC0AA020E |
|
|
要求されたモードページ (およびその種類) が存在しないと、デバイスが報告しました。
値: 0xC0AA0201 |
|
|
MODE SELECT コマンドのモードページに指定されたパラメーターの組み合わせがサポートされていないと、ドライブが報告しました。
値: 0xC0AA0208 |
|
|
メディアが書き込み保護されていると、ドライブが報告しました。
値: 0xC0AA0209 |
|
|
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速のメディアを使用していることが原因の可能性があります。
値: 0xC0AA020F |
|
|
指定されたハンドルが無効です。
値: 6 |
|
指定されたネットワークリソースまたはデバイスは、利用できなくなりました。
値: 55 |
|
直前の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。
値: 0xC0AA0210 |
|
|
ブランクの CD-R/RW メディアのみがサポートされます。
値: 0xC0AA0606 |
|
|
ブランクの CD-R/RW メディアのみがサポートされます。
値: 0xC0AA0607 |
|
|
クライアント名が無効です。
値: 0xC0AA0604 |
|
|
要求された回転方式はドライブでサポートされていないため、回転方式が調整されました。
値: 0x00AA0005 |
|
|
要求された書き込み速度はドライブでサポートされていないため、速度が調整されました。
値: 0x00AA0004 |
|
|
要求された書き込み速度と回転方式はドライブでサポートされていないため、いずれも調整されました。
値: 0x00AA0006 |
解説(Remarks)
このメソッドを呼び出す前に、IDiscFormat2RawCD::put_ClientName メソッドを呼び出す必要があります。
また、IDiscFormat2RawCD::WriteMedia または IDiscFormat2RawCD::WriteMedia2 メソッドを呼び出す前に、IDiscFormat2RawCD::PrepareMedia メソッドを呼び出す必要があります。
書き込みが完了した後、または書き込み操作をキャンセルした後は、IDiscFormat2RawCD::ReleaseMedia メソッドを呼び出してロックを解放する必要があります。
MSF 95:00:00 を開始アドレスとして、DAO-96 raw イメージをブランクメディアに書き込みます。
| data | IStream* | in | 書き込むデータストリームの IStream インターフェース。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
ポインターが無効です。
値: 0x80004003 |
|
|
指定されたオーディオストリームが無効です。
値: 0xC0AA060D |
|
|
要求された操作は、メディアが "prepared" (準備済み) の状態である場合にのみ有効です。
値: 0xC0AA0602 |
|
|
現在、書き込み操作が進行中です。
値: 0xC0AA0600 |
|
|
ブランクの CD-R/RW メディアのみがサポートされます。
値: 0xC0AA0606 |
|
|
ストリームのリードインに、現在のメディアに必要な数のセクターが含まれていません。
値: 0xC0AA060F |
|
|
1 つ以上の引数が無効です。
値: 0x80070057 |
|
|
指定されたセッションを追加するのに十分な空き容量がメディアにありません。
値: 0xC0AA0609 |
|
|
原因不明のエラーです。
値: 0x80004005 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
デバイスがタイムアウト期間内にコマンドを受け付けませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。
値: 0xC0AA020D |
|
|
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。
値: 0xC0AA02FF |
|
|
メディアが裏返しに挿入されています。
値: 0xC0AA0204 |
|
|
ドライブが準備中であることを報告しました。しばらくしてから要求を再試行してください。
値: 0xC0AA0205 |
|
|
デバイスにメディアがありません。
値: 0xC0AA0202 |
|
|
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。
値: 0xC0AA0206 |
|
|
ドライブが、書き込みの終了処理などの長時間を要する操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。
値: 0xC0AA0207 |
|
|
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または "buffer underrun free" 設定を有効にすることで解決する場合があります。
値: 0xC0AA0300 |
|
|
メディアに互換性がないか、物理フォーマットが不明です。
値: 0xC0AA0203 |
|
|
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。
値: 0xC0AA020E |
|
|
要求されたモードページ (およびその種類) が存在しないと、デバイスが報告しました。
値: 0xC0AA0201 |
|
|
MODE SELECT コマンドのモードページに指定されたパラメーターの組み合わせがサポートされていないと、ドライブが報告しました。
値: 0xC0AA0208 |
|
|
メディアが書き込み保護されていると、ドライブが報告しました。
値: 0xC0AA0209 |
|
|
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速のメディアを使用していることが原因の可能性があります。
値: 0xC0AA020F |
|
|
指定されたハンドルが無効です。
値: 6 |
|
指定されたネットワークリソースまたはデバイスは、利用できなくなりました。
値: 55 |
|
直前の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。
値: 0xC0AA0210 |
|
|
要求はキャンセルされました。
値: 0xC0AA0002 |
解説(Remarks)
このメソッドを呼び出す前に、IDiscFormat2RawCD::put_Recorder メソッドと IDiscFormat2RawCD::PrepareMedia メソッドを呼び出す必要があります。
既定値がアプリケーションに適さない場合は、次のメソッドの呼び出しも検討してください。
- IDiscFormat2RawCD::put_BufferUnderrunFreeDisabled
- IDiscFormat2RawCD::put_ClientName
- IDiscFormat2RawCD::put_RequestedSectorType
- IDiscFormat2RawCD::SetWriteSpeed
raw イメージの最初のセクターは MSF 95:00:00 に書き込まれます。RAW イメージの最初のセクターがこれと異なる場合は、IDiscFormat2RawCD::WriteMedia2 メソッドを使用してください。
このメソッドは IStream::Seek メソッドを使用して、現在のメディアに対応するイメージ内の適切な開始位置へ移動します。IStream::Seek メソッドが失敗した場合は、開始セクターに到達するまで IStream::Read メソッドを繰り返し呼び出します。
DAO-96 標準では、あらゆる種類のデータを CD メディアに書き込めます。一般的な用途の 1 つは、トラック間の 2 秒のギャップなしでオーディオ CD を書き込むことです。
DAO-96 は、CD+G や CD-Text など、サブコード内容のバリエーションもサポートします。
指定した開始アドレスを使用して、DAO-96 raw イメージをブランクメディアに書き込みます。
| data | IStream* | in | 書き込むデータストリームの IStream インターフェース。 |
| streamLeadInSectors | INT | in | データストリームの書き込みを開始する開始アドレス。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
ポインターが無効です。
値: 0x80004003 |
|
|
指定されたオーディオストリームが無効です。
値: 0xC0AA060D |
|
|
要求された操作は、メディアが "prepared" (準備済み) の状態である場合にのみ有効です。
値: 0xC0AA0602 |
|
|
現在、書き込み操作が進行中です。
値: 0xC0AA0600 |
|
|
ブランクの CD-R/RW メディアのみがサポートされます。
値: 0xC0AA0606 |
|
|
ストリームのリードインに、現在のメディアに必要な数のセクターが含まれていません。
値: 0xC0AA060F |
|
|
1 つ以上の引数が無効です。
値: 0x80070057 |
|
|
原因不明のエラーです。
値: 0x80004005 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
デバイスがタイムアウト期間内にコマンドを受け付けませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。
値: 0xC0AA020D |
|
|
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。
値: 0xC0AA02FF |
|
|
メディアが裏返しに挿入されています。
値: 0xC0AA0204 |
|
|
ドライブが準備中であることを報告しました。しばらくしてから要求を再試行してください。
値: 0xC0AA0205 |
|
|
デバイスにメディアがありません。
値: 0xC0AA0202 |
|
|
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。
値: 0xC0AA0206 |
|
|
ドライブが、書き込みの終了処理などの長時間を要する操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。
値: 0xC0AA0207 |
|
|
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または "buffer underrun free" 設定を有効にすることで解決する場合があります。
値: 0xC0AA0300 |
|
|
メディアに互換性がないか、物理フォーマットが不明です。
値: 0xC0AA0203 |
|
|
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。
値: 0xC0AA020E |
|
|
要求されたモードページ (およびその種類) が存在しないと、デバイスが報告しました。
値: 0xC0AA0201 |
|
|
MODE SELECT コマンドのモードページに指定されたパラメーターの組み合わせがサポートされていないと、ドライブが報告しました。
値: 0xC0AA0208 |
|
|
メディアが書き込み保護されていると、ドライブが報告しました。
値: 0xC0AA0209 |
|
|
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速のメディアを使用していることが原因の可能性があります。
値: 0xC0AA020F |
|
|
指定されたハンドルが無効です。
値: 6 |
|
指定されたネットワークリソースまたはデバイスは、利用できなくなりました。
値: 55 |
|
直前の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。
値: 0xC0AA0210 |
|
|
要求はキャンセルされました。
値: 0xC0AA0002 |
解説(Remarks)
このメソッドは IDiscFormat2RawCD::WriteMedia メソッドと機能的に同一ですが、95:00:00 以外の開始時間を指定できる点が異なります。詳細については、IDiscFormat2RawCD::WriteMedia メソッドを参照してください。
現在の書き込み操作をキャンセルします。(IDiscFormat2RawCD.CancelWrite)
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
現在進行中の書き込み操作はありません。
値: 0xC0AA0601 |
|
|
原因不明のエラーです。
値: 0x80004005 |
解説(Remarks)
書き込み操作をキャンセルするには、実装した DDiscFormat2RawCDEvents::Update イベントハンドラーからこのメソッドを呼び出す必要があります。
また、このメソッドを呼び出した後は、IDiscFormat2RawCD::ReleaseMedia メソッドも呼び出す必要があります。
メディア固有の要件により、このメソッドを呼び出してもすべてのメディアで書き込み操作が直ちにキャンセルされるわけではない点に注意してください。たとえば CD に書き込む場合、書き込み操作はさらに最大 3 分間継続することがあります。
このメソッドを呼び出すと、メディアは不定の状態になります。書き換え可能メディアの場合は、このメソッドを呼び出した後に IDiscFormat2Erase::EraseMedia メソッドを呼び出して、今後の使用に備えてメディアを準備してください。
raw イメージの Disc-At-Once (DAO) 書き込みセッションを閉じ、ロックを解放します。
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
要求された操作は、メディアが "prepared" (準備済み) の状態である場合にのみ有効です。
値: 0xC0AA0602 |
|
|
現在、書き込み操作が進行中です。
値: 0xC0AA0600 |
解説(Remarks)
このメソッドは、IDiscFormat2RawCD::PrepareMedia メソッドを呼び出したときに設定されたロックを解放します。書き込み操作の完了後、または書き込み操作をキャンセルするために IDiscFormat2RawCD::CancelWrite を呼び出した後には、このメソッドを呼び出す必要があります。
ディスクレコーダーの書き込み速度を設定します。(IDiscFormat2RawCD.SetWriteSpeed)
| RequestedSectorsPerSecond | INT | in | 要求する書き込み速度 (1 秒あたりのディスクセクター数)。 0xFFFFFFFF (-1) を指定すると、メディアがサポートする最速の速度で書き込むよう要求します。これが既定値です。 |
| RotationTypeIsPureCAV | VARIANT_BOOL | in | 要求する回転速度制御の種類。定角速度 (CAV) の回転速度制御を要求するには VARIANT_TRUE を設定します。レコーダーがサポートする別の回転速度制御を使用するには VARIANT_FALSE を設定します。既定値は VARIANT_FALSE です。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
この要求には、現在のディスクレコーダーが選択されている必要があります。
値: 0xC0AA0003 |
|
|
1 つ以上の引数が無効です。
値: 0x80070057 |
|
|
ポインターが無効です。
値: 0x80004003 |
|
|
原因不明のエラーです。
値: 0x80004005 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
デバイスがタイムアウト期間内にコマンドを受け付けませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。
値: 0xC0AA020D |
|
|
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。
値: 0xC0AA02FF |
|
|
メディアが裏返しに挿入されています。
値: 0xC0AA0204 |
|
|
ドライブが準備中であることを報告しました。しばらくしてから要求を再試行してください。
値: 0xC0AA0205 |
|
|
デバイスにメディアがありません。
値: 0xC0AA0202 |
|
|
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。
値: 0xC0AA0206 |
|
|
ドライブが、書き込みの終了処理などの長時間を要する操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。
値: 0xC0AA0207 |
|
|
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または "buffer underrun free" 設定を有効にすることで解決する場合があります。
値: 0xC0AA0300 |
|
|
メディアに互換性がないか、物理フォーマットが不明です。
値: 0xC0AA0203 |
|
|
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。
値: 0xC0AA020E |
|
|
要求されたモードページ (およびその種類) が存在しないと、デバイスが報告しました。
値: 0xC0AA0201 |
|
|
MODE SELECT コマンドのモードページに指定されたパラメーターの組み合わせがサポートされていないと、ドライブが報告しました。
値: 0xC0AA0208 |
|
|
メディアが書き込み保護されていると、ドライブが報告しました。
値: 0xC0AA0209 |
|
|
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速のメディアを使用していることが原因の可能性があります。
値: 0xC0AA020F |
|
|
指定されたハンドルが無効です。
値: 6 |
|
指定されたネットワークリソースまたはデバイスは、利用できなくなりました。
値: 55 |
|
直前の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。
値: 0xC0AA0210 |
|
|
ブランクの CD-R/RW メディアのみがサポートされます。
値: 0xC0AA0606 |
|
|
ブランクの CD-R/RW メディアのみがサポートされます。
値: 0xC0AA0607 |
|
|
クライアント名が無効です。
値: 0xC0AA0604 |
|
|
要求された回転方式はドライブでサポートされていないため、回転方式が調整されました。
値: 0x00AA0005 |
|
|
要求された書き込み速度はドライブでサポートされていないため、速度が調整されました。
値: 0x00AA0004 |
|
|
要求された書き込み速度と回転方式はドライブでサポートされていないため、いずれも調整されました。
値: 0x00AA0006 |
解説(Remarks)
このメソッドは、レコーダーの書き込み速度と回転速度制御の種類を設定します。要求した値は、レコーダーに実際に設定される値と異なる場合があります。レコーダーを指定するには、IDiscFormat2RawCD::put_Recorder メソッドを呼び出します。
要求した書き込み速度をレコーダーがサポートしている場合、ディスクデバイスは要求された値を使用します。サポートしていない場合、レコーダーはサポートする書き込み速度のうち要求値に最も近い値を使用します。レコーダーが使用する値は IDiscFormat2RawCD::get_CurrentWriteSpeed プロパティに格納されます。
レコーダーと現在のメディアがサポートする書き込み速度の一覧を取得するには、IDiscFormat2RawCD::get_SupportedWriteSpeeds メソッドを呼び出します。
回転速度制御の種類として定角速度 (CAV) を要求してもレコーダーが CAV をサポートしていない場合、ディスクデバイスはサポートする別の回転速度制御の種類を使用します。レコーダーが使用する値は IDiscFormat2RawCD::get_CurrentRotationTypeIsPureCAV プロパティで示されます。
要求した値を取得するには、IDiscFormat2RawCD::get_RequestedWriteSpeed メソッドと IDiscFormat2RawCD::get_RequestedRotationTypeIsPureCAV メソッドを呼び出します。
書き込み操作に使用する記録デバイスを設定します。(IDiscFormat2RawCD.put_Recorder)
| value | IDiscRecorder2* | in | 書き込み操作で使用する記録デバイスを示す IDiscRecorder2 インターフェース。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
現在、書き込み操作が進行中です。
値: 0xC0AA0600 |
|
|
メディアが "prepared" (準備済み) の状態で解放されていない場合、要求された操作は無効です。
値: 0xC0AA0603 |
|
|
このデバイスは、このディスクフォーマットが必要とする操作をサポートしていません。
値: 0xC0AA050E |
解説(Remarks)
レコーダーは、このインターフェースが定義するフォーマットと互換性がある必要があります。互換性を確認するには、IDiscFormat2::IsRecorderSupported メソッドを呼び出します。
書き込み操作に使用する記録デバイスを取得します。(IDiscFormat2RawCD.get_Recorder)
| value | IDiscRecorder2** | out | 書き込み操作で使用する記録デバイスを示す IDiscRecorder2 インターフェース。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
ポインターが無効です。
値: 0x80004003 |
Buffer Underrun Free 記録が有効かどうかを設定します。(IDiscFormat2RawCD.put_BufferUnderrunFreeDisabled)
| value | VARIANT_BOOL | in | Buffer Underrun Free 記録を無効にするには VARIANT_TRUE を、それ以外の場合は VARIANT_FALSE を設定します。既定値は VARIANT_FALSE (有効) です。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
要求された操作は、メディアが "prepared" (準備済み) の状態である場合にのみ有効です。
値: 0xC0AA0602 |
|
|
現在、書き込み操作が進行中です。
値: 0xC0AA0600 |
解説(Remarks)
データストリームがデバイスの連続書き込みを維持できる速さでバッファーに入らない場合、バッファーアンダーランが問題になることがあります。その結果、書き込みの停止と再開によってディスク上のデータが使用できなくなる可能性があります。Buffer Underrun Free (BUF) 記録では、既にディスクに書き込まれたデータを損なうことなくレーザーを停止・再開できます。BUF 記録を無効にできるのは CD-R/RW メディアの場合のみです。
Buffer Underrun Free 記録が有効かどうかを取得します。(IDiscFormat2RawCD.get_BufferUnderrunFreeDisabled)
| value | VARIANT_BOOL* | out | Buffer Underrun Free 記録が無効の場合は VARIANT_TRUE、それ以外 (有効) の場合は VARIANT_FALSE です。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
ポインターが無効です。
値: 0x80004003 |
次のセッションの最初のセクターを取得します。
| value | INT* | out | 次の書き込み操作の開始セクター番号。ブランクメディアの場合、この値は負になることがあります。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
ポインターが無効です。
値: 0x80004003 |
|
|
要求された操作は、メディアが "prepared" (準備済み) の状態である場合にのみ有効です。
値: 0xC0AA0602 |
解説(Remarks)
イメージを作成するクライアントアプリケーションは、適切なサイズのリードインおよびリードアウトデータを用意する必要があります。IDiscFormat2RawCD インターフェースを使用するアプリケーション開発者は、最初のセッションおよび後続セッションにおけるリードインとリードアウトのフォーマットを理解している必要があります。最初のセッションのリードイン LBA は負の値になる点に注意してください。
リードアウト領域の開始位置として指定できる最後の位置を取得します。
| value | INT* | out | リードアウト領域の開始位置のセクターアドレス。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
ポインターが無効です。
値: 0x80004003 |
|
|
要求された操作は、メディアが "prepared" (準備済み) の状態である場合にのみ有効です。
値: 0xC0AA0602 |
ディスクデバイス内のメディアの種類を取得します。(IDiscFormat2RawCD.get_CurrentPhysicalMediaType)
| value | IMAPI_MEDIA_PHYSICAL_TYPE* | out | ディスクデバイス内のメディアの種類。指定できる値については、IMAPI_MEDIA_PHYSICAL_TYPE 列挙型を参照してください。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
使用するレコーダーを選択するまで、メディアを準備することはできません。
値: 0xC0AA060A |
|
|
1 つ以上の引数が無効です。
値: 0x80070057 |
|
|
ポインターが無効です。
メモ この値は NULL ポインターを示すものではありません。
|
|
|
原因不明のエラーです。
値: 0x80004005 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
デバイスがタイムアウト期間内にコマンドを受け付けませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。
値: 0xC0AA020D |
|
|
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。
値: 0xC0AA02FF |
|
|
メディアが裏返しに挿入されています。
値: 0xC0AA0204 |
|
|
ドライブが準備中であることを報告しました。しばらくしてから要求を再試行してください。
値: 0xC0AA0205 |
|
|
デバイスにメディアがありません。
値: 0xC0AA0202 |
|
|
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。
値: 0xC0AA0206 |
|
|
ドライブが、書き込みの終了処理などの長時間を要する操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。
値: 0xC0AA0207 |
|
|
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または "buffer underrun free" 設定を有効にすることで解決する場合があります。
値: 0xC0AA0300 |
|
|
メディアに互換性がないか、物理フォーマットが不明です。
値: 0xC0AA0203 |
|
|
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。
値: 0xC0AA020E |
|
|
要求されたモードページ (およびその種類) が存在しないと、デバイスが報告しました。
値: 0xC0AA0201 |
|
|
MODE SELECT コマンドのモードページに指定されたパラメーターの組み合わせがサポートされていないと、ドライブが報告しました。
値: 0xC0AA0208 |
|
|
メディアが書き込み保護されていると、ドライブが報告しました。
値: 0xC0AA0209 |
|
|
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速のメディアを使用していることが原因の可能性があります。
値: 0xC0AA020F |
|
|
指定されたハンドルが無効です。
値: 6 |
|
指定されたネットワークリソースまたはデバイスは、利用できなくなりました。
値: 55 |
|
直前の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。
値: 0xC0AA0210 |
現在のレコーダーでサポートされるデータセクターの種類を取得します。
| value | SAFEARRAY** | out | 現在のレコーダーのデータセクターの種類の一覧。一覧の各要素は VT_UI4 型の VARIANT です。VARIANT の ulVal メンバーには、データセクターの種類が格納されます。 サポートされるセクターの種類の値の一覧については、IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE を参照してください。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
1 つ以上の引数が無効です。
値: 0x80070057 |
|
|
返されたポインターが無効です。この値は、IDiscFormat2RawCD::put_Recorder でレコーダーがまだ設定されていないことを示す場合もあります。
値: 0x80004003 |
|
|
原因不明のエラーです。
値: 0x80004005 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
デバイスがタイムアウト期間内にコマンドを受け付けませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。
値: 0xC0AA020D |
|
|
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。
値: 0xC0AA02FF |
|
|
メディアが裏返しに挿入されています。
値: 0xC0AA0204 |
|
|
ドライブが準備中であることを報告しました。しばらくしてから要求を再試行してください。
値: 0xC0AA0205 |
|
|
デバイスにメディアがありません。
値: 0xC0AA0202 |
|
|
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。
値: 0xC0AA0206 |
|
|
ドライブが、書き込みの終了処理などの長時間を要する操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。
値: 0xC0AA0207 |
|
|
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または "buffer underrun free" 設定を有効にすることで解決する場合があります。
値: 0xC0AA0300 |
|
|
メディアに互換性がないか、物理フォーマットが不明です。
値: 0xC0AA0203 |
|
|
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。
値: 0xC0AA020E |
|
|
要求されたモードページ (およびその種類) が存在しないと、デバイスが報告しました。
値: 0xC0AA0201 |
|
|
MODE SELECT コマンドのモードページに指定されたパラメーターの組み合わせがサポートされていないと、ドライブが報告しました。
値: 0xC0AA0208 |
|
|
メディアが書き込み保護されていると、ドライブが報告しました。
値: 0xC0AA0209 |
|
|
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速のメディアを使用していることが原因の可能性があります。
値: 0xC0AA020F |
|
|
指定されたハンドルが無効です。
値: 6 |
|
指定されたネットワークリソースまたはデバイスは、利用できなくなりました。
値: 55 |
|
直前の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。
値: 0xC0AA0210 |
ストリームの書き込みに使用するデータセクターを設定します。
| value | IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE | in | ストリームの書き込みに使用するデータセクター。指定できる値については、IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE 列挙型を参照してください。既定値は IMAPI_FORMAT2_RAW_CD_SUBCODE_IS_COOKED です。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
現在、書き込み操作が進行中です。
値: 0xC0AA0600 |
|
|
要求された操作は、メディアが "prepared" (準備済み) の状態である場合にのみ有効です。
値: 0xC0AA0602 |
|
|
要求されたデータブロックの種類は、現在のデバイスではサポートされていません。
値: 0xC0AA060E |
解説(Remarks)
サポートされるデータセクターの種類の一覧を取得するには、IDiscFormat2RawCD::get_SupportedSectorTypes メソッドを呼び出します。
ストリームの書き込み時に使用するよう要求されたデータセクターを取得します。
| value | IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE* | out | 要求されたデータセクターの種類。指定できる値については、IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE を参照してください。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
ポインターが無効です。
値: 0x80004003 |
|
|
要求された操作は、メディアが "prepared" (準備済み) の状態である場合にのみ有効です。
値: 0xC0AA0602 |
クライアントのフレンドリ名を設定します。(IDiscFormat2RawCD.put_ClientName)
| value | LPWSTR | in | クライアントアプリケーションの名前。NULL または空の文字列は指定できません。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
クライアント名が無効です。
値: 0xC0AA0604 |
|
|
現在、書き込み操作が進行中です。
値: 0xC0AA0600 |
|
|
メディアが "prepared" (準備済み) の状態で解放されていない場合、要求された操作は無効です。
値: 0xC0AA0603 |
解説(Remarks)
この名前は、書き込み操作がデバイスへの排他アクセスを要求するときに使用されます。ロックを保持しているクライアントの名前は IDiscRecorder2::get_ExclusiveAccessOwner プロパティに格納されます。
書き込み操作中に CDROM デバイスへの読み取り/書き込みアクセス権を持つアプリケーションであれば、IOCTL_CDROM_EXCLUSIVE_ACCESS (query) 制御コード (Microsoft Windows Driver Development Kit (DDK) を参照) を使用してこの名前を取得できます。そのため、このインターフェースを使用してメディアに書き込んでいるプログラムを識別できる名前にすることが重要です。名前に使用できる文字は、IOCTL_CDROM_EXCLUSIVE_ACCESS 制御コードが要求する文字セットと同じものに制限されます。
クライアントのフレンドリ名を取得します。(IDiscFormat2RawCD.get_ClientName)
| value | LPWSTR* | out | クライアントアプリケーションが指定した名前。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
ポインターが無効です。
値: 0x80004003 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
要求された書き込み速度を取得します。(IDiscFormat2RawCD.get_RequestedWriteSpeed)
| value | INT* | out | 要求する書き込み速度 (1 秒あたりのディスクセクター数)。 0xFFFFFFFF (-1) を指定すると、メディアがサポートする最速の速度で書き込むよう要求します。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
ポインターが無効です。
値: 0x80004003 |
解説(Remarks)
これは、IDiscFormat2RawCD::SetWriteSpeed メソッドの直近の呼び出しで指定された値です。
要求された回転速度制御の種類を取得します。(IDiscFormat2RawCD.get_RequestedRotationTypeIsPureCAV)
| value | VARIANT_BOOL* | out | 要求された回転速度制御の種類。定角速度 (CAV) の回転速度制御の場合は VARIANT_TRUE です。それ以外の場合、つまりレコーダーがサポートする他の回転速度制御の場合は VARIANT_FALSE です。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
ポインターが無効です。
値: 0x80004003 |
解説(Remarks)
これは、IDiscFormat2RawCD::SetWriteSpeed メソッドの直近の呼び出しで指定された値です。
ドライブの現在の書き込み速度を取得します。(IDiscFormat2RawCD.get_CurrentWriteSpeed)
| value | INT* | out | 現在のメディアの書き込み速度 (1 秒あたりのセクター数)。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
使用するレコーダーを選択するまで、メディアを準備することはできません。
値: 0xC0AA060A |
|
|
1 つ以上の引数が無効です。
値: 0x80070057 |
|
|
ポインターが無効です。
値: 0x80004003 |
|
|
原因不明のエラーです。
値: 0x80004005 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
デバイスがタイムアウト期間内にコマンドを受け付けませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。
値: 0xC0AA020D |
|
|
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。
値: 0xC0AA02FF |
|
|
メディアが裏返しに挿入されています。
値: 0xC0AA0204 |
|
|
ドライブが準備中であることを報告しました。しばらくしてから要求を再試行してください。
値: 0xC0AA0205 |
|
|
デバイスにメディアがありません。
値: 0xC0AA0202 |
|
|
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。
値: 0xC0AA0206 |
|
|
ドライブが、書き込みの終了処理などの長時間を要する操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。
値: 0xC0AA0207 |
|
|
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または "buffer underrun free" 設定を有効にすることで解決する場合があります。
値: 0xC0AA0300 |
|
|
メディアに互換性がないか、物理フォーマットが不明です。
値: 0xC0AA0203 |
|
|
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。
値: 0xC0AA020E |
|
|
要求されたモードページ (およびその種類) が存在しないと、デバイスが報告しました。
値: 0xC0AA0201 |
|
|
MODE SELECT コマンドのモードページに指定されたパラメーターの組み合わせがサポートされていないと、ドライブが報告しました。
値: 0xC0AA0208 |
|
|
メディアが書き込み保護されていると、ドライブが報告しました。
値: 0xC0AA0209 |
|
|
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速のメディアを使用していることが原因の可能性があります。
値: 0xC0AA020F |
|
|
指定されたハンドルが無効です。
値: 6 |
|
指定されたネットワークリソースまたはデバイスは、利用できなくなりました。
値: 55 |
|
直前の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。
値: 0xC0AA0210 |
|
|
ドライブが回復不能なエラー情報を返したため、書き込みに失敗しました。
値: 0xC0AA0301 |
解説(Remarks)
要求された書き込み速度を取得するには、IDiscFormat2RawCD::get_RequestedWriteSpeed メソッドを呼び出します。
レコーダーと現在のメディアがサポートする書き込み速度の一覧を取得するには、IDiscFormat2RawCD::get_SupportedWriteSpeeds メソッドを呼び出します。
書き込み速度はメディアの書き込み速度に基づく点に注意してください。このプロパティの値は、メディアが交換されると変わることがあります。
レコーダーが現在使用している回転速度制御を取得します。(IDiscFormat2RawCD.get_CurrentRotationTypeIsPureCAV)
| value | VARIANT_BOOL* | out | 定角速度 (CAV) の回転速度制御が使用されている場合は VARIANT_TRUE です。それ以外の場合は VARIANT_FALSE となり、レコーダーがサポートする別の回転速度制御が使用されていることを示します。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
使用するレコーダーを選択するまで、メディアを準備することはできません。
値: 0xC0AA060A |
|
|
1 つ以上の引数が無効です。
値: 0x80070057 |
|
|
ポインターが無効です。
値: 0x80004003 |
|
|
原因不明のエラーです。
値: 0x80004005 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
デバイスがタイムアウト期間内にコマンドを受け付けませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。
値: 0xC0AA020D |
|
|
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。
値: 0xC0AA02FF |
|
|
メディアが裏返しに挿入されています。
値: 0xC0AA0204 |
|
|
ドライブが準備中であることを報告しました。しばらくしてから要求を再試行してください。
値: 0xC0AA0205 |
|
|
デバイスにメディアがありません。
値: 0xC0AA0202 |
|
|
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。
値: 0xC0AA0206 |
|
|
ドライブが、書き込みの終了処理などの長時間を要する操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。
値: 0xC0AA0207 |
|
|
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または "buffer underrun free" 設定を有効にすることで解決する場合があります。
値: 0xC0AA0300 |
|
|
メディアに互換性がないか、物理フォーマットが不明です。
値: 0xC0AA0203 |
|
|
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。
値: 0xC0AA020E |
|
|
要求されたモードページ (およびその種類) が存在しないと、デバイスが報告しました。
値: 0xC0AA0201 |
|
|
MODE SELECT コマンドのモードページに指定されたパラメーターの組み合わせがサポートされていないと、ドライブが報告しました。
値: 0xC0AA0208 |
|
|
メディアが書き込み保護されていると、ドライブが報告しました。
値: 0xC0AA0209 |
|
|
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速のメディアを使用していることが原因の可能性があります。
値: 0xC0AA020F |
|
|
指定されたハンドルが無効です。
値: 6 |
|
指定されたネットワークリソースまたはデバイスは、利用できなくなりました。
値: 55 |
|
直前の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。
値: 0xC0AA0210 |
|
|
ドライブが回復不能なエラー情報を返したため、書き込みに失敗しました。
値: 0xC0AA0301 |
解説(Remarks)
要求された回転速度制御を取得するには、IDiscFormat2RawCD::get_RequestedRotationTypeIsPureCAV メソッドを呼び出します。
回転速度制御の種類には次のものがあります。
- CLV (Constant Linear Velocity、定線速度)。ディスクは一定の速度で書き込まれます。標準的な回転制御です。
- CAV (Constant Angular Velocity、定角速度)。ディスクは連続的に増加する速度で書き込まれます。
- ZCAV (Zone Constant Linear Velocity、ゾーン定線速度)。ディスクはゾーンに分割され、各ゾーンを過ぎるごとに書き込み速度が上がります。これは CAV の不完全な形式です。
- PCAV (Partial Constant Angular Velocity、部分定角速度)。ディスクの速度は指定された速度まで上がり、到達後はディスクの書き込みが終わるまでその速度で回転します。
ディスクレコーダーと現在のメディアがサポートする書き込み速度の一覧を取得します。(IDiscFormat2RawCD.get_SupportedWriteSpeeds)
| supportedSpeeds | SAFEARRAY** | out | ディスクレコーダーと現在のメディアがサポートする書き込み速度の一覧。一覧の各要素は VT_UI4 型の VARIANT です。VARIANT の ulVal メンバーには、1 秒あたりに書き込まれるセクター数が格納されます。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
使用するレコーダーを選択するまで、メディアを準備することはできません。
値: 0xC0AA060A |
|
|
1 つ以上の引数が無効です。
値: 0x80070057 |
|
|
ポインターが無効です。
メモ この値は NULL ポインターを示すものではありません。
|
|
|
原因不明のエラーです。
値: 0x80004005 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
デバイスがタイムアウト期間内にコマンドを受け付けませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。
値: 0xC0AA020D |
|
|
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。
値: 0xC0AA02FF |
|
|
メディアが裏返しに挿入されています。
値: 0xC0AA0204 |
|
|
ドライブが準備中であることを報告しました。しばらくしてから要求を再試行してください。
値: 0xC0AA0205 |
|
|
デバイスにメディアがありません。
値: 0xC0AA0202 |
|
|
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。
値: 0xC0AA0206 |
|
|
ドライブが、書き込みの終了処理などの長時間を要する操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。
値: 0xC0AA0207 |
|
|
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または "buffer underrun free" 設定を有効にすることで解決する場合があります。
値: 0xC0AA0300 |
|
|
メディアに互換性がないか、物理フォーマットが不明です。
値: 0xC0AA0203 |
|
|
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。
値: 0xC0AA020E |
|
|
要求されたモードページ (およびその種類) が存在しないと、デバイスが報告しました。
値: 0xC0AA0201 |
|
|
MODE SELECT コマンドのモードページに指定されたパラメーターの組み合わせがサポートされていないと、ドライブが報告しました。
値: 0xC0AA0208 |
|
|
メディアが書き込み保護されていると、ドライブが報告しました。
値: 0xC0AA0209 |
|
|
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速のメディアを使用していることが原因の可能性があります。
値: 0xC0AA020F |
|
|
指定されたハンドルが無効です。
値: 6 |
|
指定されたネットワークリソースまたはデバイスは、利用できなくなりました。
値: 55 |
|
直前の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。
値: 0xC0AA0210 |
|
|
ドライブが回復不能なエラー情報を返したため、書き込みに失敗しました。
値: 0xC0AA0301 |
解説(Remarks)
この一覧に含まれる速度を使用して、IDiscFormat2RawCD::SetWriteSpeed メソッドの呼び出し時に書き込み速度を設定できます。
レコーダーと現在のメディアがサポートする書き込み構成の一覧を取得するには、IDiscFormat2RawCD::get_SupportedWriteSpeedDescriptors メソッドを呼び出します。
ディスクレコーダーと現在のメディアがサポートする詳細な書き込み構成の一覧を取得します。(IDiscFormat2RawCD.get_SupportedWriteSpeedDescriptors)
| supportedSpeedDescriptors | SAFEARRAY** | out | ディスクレコーダーと現在のメディアがサポートする詳細な書き込み構成の一覧。一覧の各要素は VT_Dispatch 型の VARIANT です。VARIANT の pdispVal メンバーに対して IWriteSpeedDescriptor インターフェースをクエリします。このインターフェースには、メディアの種類、書き込み速度、回転速度制御の種類が含まれます。 |
戻り値
成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合は次のエラーコードが一般的に返されますが、返される可能性のあるエラー値はこれらに限りません:
| 戻り値 | 説明 |
|---|---|
|
使用するレコーダーを選択するまで、メディアを準備することはできません。
値: 0xC0AA060A |
|
|
1 つ以上の引数が無効です。
値: 0x80070057 |
|
|
ポインターが無効です。
メモ この値は NULL ポインターを示すものではありません。
|
|
|
原因不明のエラーです。
値: 0x80004005 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
デバイスがタイムアウト期間内にコマンドを受け付けませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。
値: 0xC0AA020D |
|
|
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。
値: 0xC0AA02FF |
|
|
メディアが裏返しに挿入されています。
値: 0xC0AA0204 |
|
|
ドライブが準備中であることを報告しました。しばらくしてから要求を再試行してください。
値: 0xC0AA0205 |
|
|
デバイスにメディアがありません。
値: 0xC0AA0202 |
|
|
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。
値: 0xC0AA0206 |
|
|
ドライブが、書き込みの終了処理などの長時間を要する操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。
値: 0xC0AA0207 |
|
|
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または "buffer underrun free" 設定を有効にすることで解決する場合があります。
値: 0xC0AA0300 |
|
|
メディアに互換性がないか、物理フォーマットが不明です。
値: 0xC0AA0203 |
|
|
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。
値: 0xC0AA020E |
|
|
要求されたモードページ (およびその種類) が存在しないと、デバイスが報告しました。
値: 0xC0AA0201 |
|
|
MODE SELECT コマンドのモードページに指定されたパラメーターの組み合わせがサポートされていないと、ドライブが報告しました。
値: 0xC0AA0208 |
|
|
メディアが書き込み保護されていると、ドライブが報告しました。
値: 0xC0AA0209 |
|
|
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速のメディアを使用していることが原因の可能性があります。
値: 0xC0AA020F |
|
|
指定されたハンドルが無効です。
値: 6 |
|
指定されたネットワークリソースまたはデバイスは、利用できなくなりました。
値: 55 |
|
直前の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。
値: 0xC0AA0210 |
|
|
ドライブが回復不能なエラー情報を返したため、書き込みに失敗しました。
値: 0xC0AA0301 |
解説(Remarks)
レコーダーと現在のメディアがサポートする書き込み速度の一覧を取得するには、IDiscFormat2RawCD::get_SupportedWriteSpeeds メソッドを呼び出します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDiscFormat2RawCD "{27354155-8F64-5B0F-8F00-5D77AFBE261E}" #usecom global IDiscFormat2RawCD IID_IDiscFormat2RawCD "{}" #comfunc global IDiscFormat2RawCD_PrepareMedia 12 #comfunc global IDiscFormat2RawCD_WriteMedia 13 sptr #comfunc global IDiscFormat2RawCD_WriteMedia2 14 sptr,int #comfunc global IDiscFormat2RawCD_CancelWrite 15 #comfunc global IDiscFormat2RawCD_ReleaseMedia 16 #comfunc global IDiscFormat2RawCD_SetWriteSpeed 17 int,int #comfunc global IDiscFormat2RawCD_put_Recorder 18 sptr #comfunc global IDiscFormat2RawCD_get_Recorder 19 sptr #comfunc global IDiscFormat2RawCD_put_BufferUnderrunFreeDisabled 20 int #comfunc global IDiscFormat2RawCD_get_BufferUnderrunFreeDisabled 21 var #comfunc global IDiscFormat2RawCD_get_StartOfNextSession 22 var #comfunc global IDiscFormat2RawCD_get_LastPossibleStartOfLeadout 23 var #comfunc global IDiscFormat2RawCD_get_CurrentPhysicalMediaType 24 var #comfunc global IDiscFormat2RawCD_get_SupportedSectorTypes 25 var #comfunc global IDiscFormat2RawCD_put_RequestedSectorType 26 int #comfunc global IDiscFormat2RawCD_get_RequestedSectorType 27 var #comfunc global IDiscFormat2RawCD_put_ClientName 28 wstr #comfunc global IDiscFormat2RawCD_get_ClientName 29 var #comfunc global IDiscFormat2RawCD_get_RequestedWriteSpeed 30 var #comfunc global IDiscFormat2RawCD_get_RequestedRotationTypeIsPureCAV 31 var #comfunc global IDiscFormat2RawCD_get_CurrentWriteSpeed 32 var #comfunc global IDiscFormat2RawCD_get_CurrentRotationTypeIsPureCAV 33 var #comfunc global IDiscFormat2RawCD_get_SupportedWriteSpeeds 34 var #comfunc global IDiscFormat2RawCD_get_SupportedWriteSpeedDescriptors 35 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IDiscFormat2RawCD "{27354155-8F64-5B0F-8F00-5D77AFBE261E}" #usecom global IDiscFormat2RawCD IID_IDiscFormat2RawCD "{}" #comfunc global IDiscFormat2RawCD_PrepareMedia 12 #comfunc global IDiscFormat2RawCD_WriteMedia 13 sptr #comfunc global IDiscFormat2RawCD_WriteMedia2 14 sptr,int #comfunc global IDiscFormat2RawCD_CancelWrite 15 #comfunc global IDiscFormat2RawCD_ReleaseMedia 16 #comfunc global IDiscFormat2RawCD_SetWriteSpeed 17 int,int #comfunc global IDiscFormat2RawCD_put_Recorder 18 sptr #comfunc global IDiscFormat2RawCD_get_Recorder 19 sptr #comfunc global IDiscFormat2RawCD_put_BufferUnderrunFreeDisabled 20 int #comfunc global IDiscFormat2RawCD_get_BufferUnderrunFreeDisabled 21 sptr #comfunc global IDiscFormat2RawCD_get_StartOfNextSession 22 sptr #comfunc global IDiscFormat2RawCD_get_LastPossibleStartOfLeadout 23 sptr #comfunc global IDiscFormat2RawCD_get_CurrentPhysicalMediaType 24 sptr #comfunc global IDiscFormat2RawCD_get_SupportedSectorTypes 25 sptr #comfunc global IDiscFormat2RawCD_put_RequestedSectorType 26 int #comfunc global IDiscFormat2RawCD_get_RequestedSectorType 27 sptr #comfunc global IDiscFormat2RawCD_put_ClientName 28 wstr #comfunc global IDiscFormat2RawCD_get_ClientName 29 sptr #comfunc global IDiscFormat2RawCD_get_RequestedWriteSpeed 30 sptr #comfunc global IDiscFormat2RawCD_get_RequestedRotationTypeIsPureCAV 31 sptr #comfunc global IDiscFormat2RawCD_get_CurrentWriteSpeed 32 sptr #comfunc global IDiscFormat2RawCD_get_CurrentRotationTypeIsPureCAV 33 sptr #comfunc global IDiscFormat2RawCD_get_SupportedWriteSpeeds 34 sptr #comfunc global IDiscFormat2RawCD_get_SupportedWriteSpeedDescriptors 35 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。