Win32 API 日本語リファレンス
ホームStorage.Imapi › IDiscRecorder2Ex

IDiscRecorder2Ex

COM
IID27354132-7f64-5b0f-8f00-5d77afbe261e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

このインターフェースは物理デバイスを表します。

解説(Remarks)

メディアにデータを書き込むには、IWriteEngine2::put_Recorder メソッドを使用して、このレコーダーを IWriteEngine2 データライターに関連付ける必要があります。

メソッド 18

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SendCommandNoData(BYTE* Cdb, DWORD CdbSize, BYTE* SenseBuffer, DWORD Timeout)

MMC コマンドを記録デバイスに送信します。デバイスとの間でデータバッファーの送受信を行わない場合に、この関数を使用します。

CdbBYTE*inデバイスに送信するコマンドパケット。
CdbSizeDWORDin送信するコマンドパケットのサイズ (バイト単位)。6 ~ 16 バイトである必要があります。
SenseBufferBYTE*out記録デバイスから返されるセンスデータ。
TimeoutDWORDin送信したコマンドの結果を受け取るまでに許容される制限時間 (秒単位)。

戻り値

成功時には S_OK または次のいずれかの値が返されますが、実装によっては他の成功コードが返される場合もあります。

戻り値 説明
S_IMAPI_COMMAND_HAS_SENSE_DATA
デバイスはコマンドに失敗しましたが、センスデータを返しました。

値: 0x00AA0200

 

操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
ドライブが GET CONFIGURATION コマンドをサポートしていません。

値: 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
要求された機能ページはデバイスでサポートされていません。

値: 0xC0AA020A

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
要求された機能ページはサポートされていますが、現在の機能ページとして設定されていません。

値: 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

解説(Remarks)

コマンドパケットおよびセンスデータの内容の詳細については、ftp://ftp.t10.org/t10/drafts/mmc5 にある MMC 仕様の最新版を参照してください。

このメソッドで使用するクライアント定義コマンド (CDB) は、長さが 6 ~ 16 バイトである必要があります。さらに、各コマンドのサイズは、次の表に示すオペレーションコードごとに定義されたサイズと一致している必要があります。

CDB オペレーションコードの範囲 CDB グループ 必要な CDB サイズ
0x00 — 0x1F 0 6 バイト
0x20 — 0x3F 1 10 バイト
0x40 — 0x5F 2 10 バイト
0x60 — 0x7F 3 このオペコード範囲については、将来的に標準で規定されたサイズ要件が適用される予定です。
0x80 — 0x9F 4 16 バイト
0xA0 — 0xBF 5 12 バイト
0xC0 — 0xDF 6 ベンダー固有 - 任意のサイズが許可されます
0xE0 — 0xFF 7 ベンダー固有 - 任意のサイズが許可されます
 

ごく初期の一部のデバイスはベンダー固有のオペコードを使用していたため、一部のオペコードはこの方法では検証できません。次のオペコードは引き続き有効であり、サイズが 6 ~ 16 バイトの範囲であることのみが検証されます。

0x02, 0x05, 0x06, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x13, 0x14, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x26, 0x27, 0x29, 0x2C, 0x2D

vtbl 4 HRESULT SendCommandSendDataToDevice(BYTE* Cdb, DWORD CdbSize, BYTE* SenseBuffer, DWORD Timeout, BYTE* Buffer, DWORD BufferSize)

MMC コマンドと、それに関連付けられたデータバッファーを記録デバイスに送信します。

CdbBYTE*inデバイスに送信するコマンドパケット。
CdbSizeDWORDin送信するコマンドパケットのサイズ (バイト単位)。6 ~ 16 バイトである必要があります。
SenseBufferBYTE*out記録デバイスから返されるセンスデータ。
TimeoutDWORDin送信したコマンドの結果を受け取るまでに許容される制限時間 (秒単位)。
BufferBYTE*in送信コマンドに関連付けられたデータを格納するバッファー。NULL にすることはできません。
BufferSizeDWORDin送信するデータバッファーのサイズ (バイト単位)。ゼロにすることはできません。

戻り値

成功時には S_OK または次のいずれかの値が返されますが、実装によっては他の成功コードが返される場合もあります。

戻り値 説明
S_IMAPI_COMMAND_HAS_SENSE_DATA
デバイスはコマンドに失敗しましたが、センスデータを返しました。

値: 0x00AA0200

 

操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
ドライブが GET CONFIGURATION コマンドをサポートしていません。

値: 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
要求された機能ページはデバイスでサポートされていません。

値: 0xC0AA020A

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
要求された機能ページはサポートされていますが、現在の機能ページとして設定されていません。

値: 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

解説(Remarks)

コマンドパケット、センスデータ、および入力データバッファーの内容の詳細については、ftp://ftp.t10.org/t10/drafts/mmc5 にある MMC 仕様の最新版を参照してください。

このメソッドで使用するクライアント定義コマンド (CDB) は、長さが 6 ~ 16 バイトである必要があります。さらに、各コマンドのサイズは、次の表に示すオペレーションコードごとに定義されたサイズと一致している必要があります。

CDB オペレーションコードの範囲 CDB グループ 必要な CDB サイズ
0x00 — 0x1F 0 6 バイト
0x20 — 0x3F 1 10 バイト
0x40 — 0x5F 2 10 バイト
0x60 — 0x7F 3 このオペコード範囲については、将来的に標準で規定されたサイズ要件が適用される予定です。
0x80 — 0x9F 4 16 バイト
0xA0 — 0xBF 5 12 バイト
0xC0 — 0xDF 6 ベンダー固有 - 任意のサイズが許可されます
0xE0 — 0xFF 7 ベンダー固有 - 任意のサイズが許可されます
 

ごく初期の一部のデバイスはベンダー固有のオペコードを使用していたため、一部のオペコードはこの方法では検証できません。次のオペコードは引き続き有効であり、サイズが 6 ~ 16 バイトの範囲であることのみが検証されます。

0x02, 0x05, 0x06, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x13, 0x14, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x26, 0x27, 0x29, 0x2C, 0x2D

vtbl 5 HRESULT SendCommandGetDataFromDevice(BYTE* Cdb, DWORD CdbSize, BYTE* SenseBuffer, DWORD Timeout, BYTE* Buffer, DWORD BufferSize, DWORD* BufferFetched)

デバイスからのデータを要求する MMC コマンドを記録デバイスに送信します。

CdbBYTE*inデバイスに送信するコマンドパケット。
CdbSizeDWORDin送信するコマンドパケットのサイズ (バイト単位)。6 ~ 16 バイトである必要があります。
SenseBufferBYTE*out記録デバイスから返されるセンスデータ。
TimeoutDWORDin送信したコマンドの結果を受け取るまでに許容される制限時間 (秒単位)。
BufferBYTE*out送信コマンドに関連付けられたデータを受け取る、アプリケーションが割り当てたデータバッファー。NULL にすることはできません。
BufferSizeDWORDinBuffer データバッファーのサイズ (バイト単位)。ゼロにすることはできません。
BufferFetchedDWORD*outBuffer データバッファーに返されたデータのサイズ (バイト単位)。

戻り値

成功時には S_OK または次のいずれかの値が返されますが、実装によっては他の成功コードが返される場合もあります。

戻り値 説明
S_IMAPI_COMMAND_HAS_SENSE_DATA
デバイスはコマンドに失敗しましたが、センスデータを返しました。
 

操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
ドライブが GET CONFIGURATION コマンドをサポートしていません。

値: 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
要求された機能ページはデバイスでサポートされていません。

値: 0xC0AA020A

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
要求された機能ページはサポートされていますが、現在の機能ページとして設定されていません。

値: 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

解説(Remarks)

コマンドパケット、センスデータ、および出力データバッファーの内容の詳細については、ftp://ftp.t10.org/t10/drafts/mmc5 にある MMC 仕様の最新版を参照してください。

このメソッドで使用するクライアント定義コマンド (CDB) は、長さが 6 ~ 16 バイトである必要があります。さらに、各コマンドのサイズは、次の表に示すオペレーションコードごとに定義されたサイズと一致している必要があります。

CDB オペレーションコードの範囲 CDB グループ 必要な CDB サイズ
0x00 — 0x1F 0 6 バイト
0x20 — 0x3F 1 10 バイト
0x40 — 0x5F 2 10 バイト
0x60 — 0x7F 3 このオペコード範囲については、将来的に標準で規定されたサイズ要件が適用される予定です。
0x80 — 0x9F 4 16 バイト
0xA0 — 0xBF 5 12 バイト
0xC0 — 0xDF 6 ベンダー固有 - 任意のサイズが許可されます
0xE0 — 0xFF 7 ベンダー固有 - 任意のサイズが許可されます
 

ごく初期の一部のデバイスはベンダー固有のオペコードを使用していたため、一部のオペコードはこの方法では検証できません。次のオペコードは引き続き有効であり、サイズが 6 ~ 16 バイトの範囲であることのみが検証されます。

0x02, 0x05, 0x06, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x13, 0x14, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x26, 0x27, 0x29, 0x2C, 0x2D

vtbl 6 HRESULT ReadDvdStructure(DWORD format, DWORD address, DWORD layer, DWORD agid, BYTE** data, DWORD* count)

メディアから DVD 構造を読み取ります。

formatDWORDin

コマンドパケットの Format フィールド。指定できる値は 0 から 0xFF の範囲です。

  この値は UCHAR に切り詰められます。
 
addressDWORDinコマンドパケットの Address フィールド。
layerDWORDinコマンドパケットの Layer フィールド。
agidDWORDinコマンドパケットの認証許可 ID (AGID) フィールド。
dataBYTE**out

DVD 構造を格納するデータバッファー。データバッファーの内容の詳細については、ftp://ftp.t10.org/t10/drafts/mmc5 にある MMC 仕様の最新版の READ DISC STRUCTURE コマンドを参照してください。

このメソッドはバッファーからヘッダーを削除します。

使用が終わったら、CoTaskMemFree 関数を呼び出してメモリを解放してください。

countDWORD*outデータバッファーのサイズ (バイト単位)。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
ドライブが GET CONFIGURATION コマンドをサポートしていません。

値: 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
要求された機能ページはデバイスでサポートされていません。

値: 0xC0AA020A

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
要求された機能ページはサポートされていますが、現在の機能ページとして設定されていません。

値: 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020E

解説(Remarks)

このメソッドは、READ DISC STRUCTURE コマンドを扱う際の複雑さを解消します。formataddresslayeragid の各パラメーターに指定する値の詳細については、ftp://ftp.t10.org/t10/drafts/mmc5 にある MMC 仕様の最新版で READ DISC STRUCTURE コマンドの各フィールドの説明を参照してください。

vtbl 7 HRESULT SendDvdStructure(DWORD format, BYTE* data, DWORD count)

メディアに DVD 構造を送信します。

formatDWORDinコマンドパケットの Format フィールド。指定できる値は 0 から 0xFF の範囲です。
dataBYTE*inメディアに送信する DVD 構造を格納するデータバッファー。ヘッダーは含めないでください。このメソッドがヘッダーを生成し、DVD 構造の先頭に付加します。
countDWORDinデータバッファーのサイズ (バイト単位)。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
ドライブが GET CONFIGURATION コマンドをサポートしていません。

値: 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
要求された機能ページはデバイスでサポートされていません。

値: 0xC0AA020A

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
要求された機能ページはサポートされていますが、現在の機能ページとして設定されていません。

値: 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

解説(Remarks)

構造の各フィールドの指定方法の詳細については、ftp://ftp.t10.org/t10/drafts/mmc5 にある MMC 仕様の最新版の SEND DISC STRUCTURE コマンドを参照してください。

vtbl 8 HRESULT GetAdapterDescriptor(BYTE** data, DWORD* byteSize)

デバイスのアダプター記述子を取得します。

dataBYTE**out

ストレージアダプターの記述子を格納するデータバッファー。データバッファーの内容の詳細については、DDK の STORAGE_ADAPTER_DESCRIPTOR 構造体を参照してください

使用が終わったら、CoTaskMemFree 関数を呼び出してメモリを解放してください。

byteSizeDWORD*outデータバッファーのサイズ (バイト単位)。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

vtbl 9 HRESULT GetDeviceDescriptor(BYTE** data, DWORD* byteSize)

デバイスのデバイス記述子を取得します。

dataBYTE**out

ストレージデバイスの記述子を格納するデータバッファー。データバッファーの内容の詳細については、DDK の STORAGE_DEVICE_DESCRIPTOR 構造体を参照してください

使用が終わったら、CoTaskMemFree 関数を呼び出してメモリを解放してください。

byteSizeDWORD*outデータバッファーのサイズ (バイト単位)。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

vtbl 10 HRESULT GetDiscInformation(BYTE** discInformation, DWORD* byteSize)

メディアからディスク情報を取得します。

discInformationBYTE**out

メディアのディスク情報を格納するデータバッファー。データバッファーの内容の詳細については、ftp://ftp.t10.org/t10/drafts/mmc5 にある MMC 仕様の最新版の READ DISC INFORMATION コマンドを参照してください。

使用が終わったら、CoTaskMemFree 関数を呼び出してメモリを解放してください。

byteSizeDWORD*outデータバッファーのサイズ (バイト単位)。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

解説(Remarks)

返されたデータの解釈方法の詳細については、MMC 仕様を参照してください。

vtbl 11 HRESULT GetTrackInformation(DWORD address, IMAPI_READ_TRACK_ADDRESS_TYPE addressType, BYTE** trackInformation, DWORD* byteSize)

メディアからトラック情報を取得します。

addressDWORDinAddress フィールド。addressType パラメーターが、このパラメーターの解釈に必要な追加情報を提供します。
addressTypeIMAPI_READ_TRACK_ADDRESS_TYPEinaddress パラメーターで指定したアドレスの種類 (LBA アドレスかトラック番号かなど)。指定できる値については、IMAPI_READ_TRACK_ADDRESS_TYPE 列挙型を参照してください。
trackInformationBYTE**out

トラック情報を格納するデータバッファー。データバッファーの内容の詳細については、ftp://ftp.t10.org/t10/drafts/mmc5 にある MMC 仕様の最新版の READ TRACK INFORMATION コマンドを参照してください。

使用が終わったら、CoTaskMemFree 関数を呼び出してメモリを解放してください。

byteSizeDWORD*outtrackInformation データバッファーのサイズ (バイト単位)。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
ドライブが GET CONFIGURATION コマンドをサポートしていません。

値: 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
要求された機能ページはデバイスでサポートされていません。

値: 0xC0AA020A

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
要求された機能ページはサポートされていますが、現在の機能ページとして設定されていません。

値: 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

vtbl 12 HRESULT GetFeaturePage(IMAPI_FEATURE_PAGE_TYPE requestedFeature, BOOLEAN currentFeatureOnly, BYTE** featureData, DWORD* byteSize)

デバイスから指定された機能ページを取得します。

requestedFeatureIMAPI_FEATURE_PAGE_TYPEin取得する機能ページ。指定できる値については、IMAPI_FEATURE_PAGE_TYPE 列挙型を参照してください。
currentFeatureOnlyBOOLEANin現在の機能ページである場合にのみ機能ページを取得するには True を指定します。現在の機能ページかどうかに関係なく取得するには False を指定します。
featureDataBYTE**out

機能ページを格納するデータバッファー。データバッファーの内容の詳細については、ftp://ftp.t10.org/t10/drafts/mmc5 にある MMC 仕様の最新版の GET CONFIGURATION コマンドを参照してください。

このメソッドは、ヘッダー情報および機能ページ以外のデータを取り除いたうえで、このバッファーにデータを格納して返します。

使用が終わったら、CoTaskMemFree 関数を呼び出してメモリを解放してください。

byteSizeDWORD*outfeatureData データバッファーのサイズ (バイト単位)。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
ドライブが GET CONFIGURATION コマンドをサポートしていません。

値: 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
要求された機能ページはデバイスでサポートされていません。

値: 0xC0AA020A

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
要求された機能ページはサポートされていますが、現在の機能ページとして設定されていません。

値: 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

vtbl 13 HRESULT GetModePage(IMAPI_MODE_PAGE_TYPE requestedModePage, IMAPI_MODE_PAGE_REQUEST_TYPE requestType, BYTE** modePageData, DWORD* byteSize)

デバイスから指定されたモードページを取得します。

requestedModePageIMAPI_MODE_PAGE_TYPEin取得するモードページ。指定できる値については、IMAPI_MODE_PAGE_TYPE 列挙型を参照してください。
requestTypeIMAPI_MODE_PAGE_REQUEST_TYPEin取得するモードページデータの種類 (現在の設定、書き込みが有効な設定など)。指定できる値については、IMAPI_MODE_PAGE_REQUEST_TYPE 列挙型を参照してください。
modePageDataBYTE**out

モードページを格納するデータバッファー。データバッファーの内容の詳細については、ftp://ftp.t10.org/t10/drafts/mmc5 にある MMC 仕様の最新版の MODE SENSE (10) コマンドを参照してください。

このメソッドは、ヘッダー情報およびページ以外のデータを取り除いたうえでバッファーを返します。

使用が終わったら、CoTaskMemFree 関数を呼び出してメモリを解放してください。

byteSizeDWORD*outmodePageData データバッファーのサイズ (バイト単位)。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_INVALIDARG
1 つ以上の引数が有効ではありません。

値: 0x80070057

E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

vtbl 14 HRESULT SetModePage(IMAPI_MODE_PAGE_REQUEST_TYPE requestType, BYTE* data, DWORD byteSize)

デバイスのモードページデータを設定します。

requestTypeIMAPI_MODE_PAGE_REQUEST_TYPEin送信するモードページデータの種類。指定できる値については、IMAPI_MODE_PAGE_REQUEST_TYPE 列挙型を参照してください。
dataBYTE*in

メディアに送信するモードページデータを格納するデータバッファー。ヘッダーは含めないでください。このメソッドがヘッダーを生成し、モードページデータの先頭に付加します。

モードページデータの各フィールドの指定方法の詳細については、ftp://ftp.t10.org/t10/drafts/mmc5 にある MMC 仕様の最新版の MODE SELECT (10) コマンドを参照してください。

byteSizeDWORDinデータバッファーのサイズ (バイト単位)。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
ドライブが GET CONFIGURATION コマンドをサポートしていません。

値: 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
要求された機能ページはデバイスでサポートされていません。

値: 0xC0AA020A

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
要求された機能ページはサポートされていますが、現在の機能ページとして設定されていません。

値: 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

vtbl 15 HRESULT GetSupportedFeaturePages(BOOLEAN currentFeatureOnly, IMAPI_FEATURE_PAGE_TYPE** featureData, DWORD* byteSize)

デバイスがサポートする機能ページの一覧、または現在の機能ページを取得します。

currentFeatureOnlyBOOLEANin現在の機能ページのみを取得するには True を指定します。デバイスがサポートするすべての機能ページを取得するには False を指定します。
featureDataIMAPI_FEATURE_PAGE_TYPE**out

1 つ以上の機能ページの種類を格納するデータバッファー。指定できる値については、IMAPI_FEATURE_PAGE_TYPE 列挙型を参照してください。

機能ページの種類に対応する機能ページデータを取得するには、IDiscRecorder2Ex::GetFeaturePage メソッドを呼び出します。

使用が終わったら、CoTaskMemFree 関数を呼び出してメモリを解放してください。

byteSizeDWORD*outfeatureData データバッファーに格納されている、サポートされる機能ページの数。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
ドライブが GET CONFIGURATION コマンドをサポートしていません。

値: 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
要求された機能ページはデバイスでサポートされていません。

値: 0xC0AA020A

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
要求された機能ページはサポートされていますが、現在の機能ページとして設定されていません。

値: 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

vtbl 16 HRESULT GetSupportedProfiles(BOOLEAN currentOnly, IMAPI_PROFILE_TYPE** profileTypes, DWORD* validProfiles)

デバイスがサポートするプロファイル、または現在のプロファイルを取得します。

currentOnlyBOOLEANin現在のプロファイルを取得するには True を指定します。デバイスがサポートするすべてのプロファイルを返すには False を指定します。
profileTypesIMAPI_PROFILE_TYPE**out

1 つ以上のプロファイルの種類を格納するデータバッファー。指定できる値については、IMAPI_PROFILE_TYPE 列挙型を参照してください。

使用が終わったら、CoTaskMemFree 関数を呼び出してメモリを解放してください。

validProfilesDWORD*outprofileTypes データバッファーに格納されている、サポートされるプロファイルの数。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
ドライブが GET CONFIGURATION コマンドをサポートしていません。

値: 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
要求された機能ページはデバイスでサポートされていません。

値: 0xC0AA020A

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
要求された機能ページはサポートされていますが、現在の機能ページとして設定されていません。

値: 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

vtbl 17 HRESULT GetSupportedModePages(IMAPI_MODE_PAGE_REQUEST_TYPE requestType, IMAPI_MODE_PAGE_TYPE** modePageTypes, DWORD* validPages)

デバイスがサポートするモードページを取得します。

requestTypeIMAPI_MODE_PAGE_REQUEST_TYPEin取得するモードページデータの種類 (現在の設定、書き込みが有効な設定など)。指定できる値については、IMAPI_MODE_PAGE_REQUEST_TYPE 列挙型を参照してください。
modePageTypesIMAPI_MODE_PAGE_TYPE**out

1 つ以上のモードページの種類を格納するデータバッファー。指定できる値については、IMAPI_MODE_PAGE_TYPE 列挙型を参照してください。

モードページの種類に対応するモードページデータを取得するには、IDiscRecorder2Ex::GetModePage メソッドを呼び出します。

使用が終わったら、CoTaskMemFree 関数を呼び出してメモリを解放してください。

validPagesDWORD*outデータバッファー内のモードページの数。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_INVALIDARG
1 つ以上の引数が有効ではありません。

値: 0x80070057

E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

E_OUTOFMEMORY
必要なメモリを割り当てられませんでした。

値: 0x8007000E

E_IMAPI_RECORDER_COMMAND_TIMEOUT
デバイスがタイムアウト期間内にコマンドを受け付けられませんでした。デバイスが不整合な状態になっているか、コマンドのタイムアウト値を大きくする必要がある可能性があります。

値: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
デバイスがコマンドに対して予期しないデータまたは無効なデータを報告しました。

値: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
メディアが裏返しに挿入されています。

値: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
ドライブが準備中であることを報告しました。しばらくしてから要求をやり直してください。

値: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
デバイスにメディアが入っていません。

値: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
メディアは現在フォーマット中です。フォーマットが完了するまで待ってから、メディアを使用してください。

値: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
ドライブが、書き込みの終了処理など長時間かかる操作を実行中であることを報告しました。ドライブは長時間使用できない可能性があります。

値: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
ドライブが書き込みを継続できるだけの速さでデータを受け取れなかったため、書き込みに失敗しました。ソースデータをローカルコンピューターに移動する、書き込み速度を下げる、または「バッファーアンダーランフリー」設定を有効にすることで、この問題を解決できる場合があります。

値: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
メディアに互換性がないか、物理フォーマットが不明です。

値: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
DVD 構造が存在しません。互換性のないドライブまたはメディアを使用していることが原因の可能性があります。

値: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
ドライブが、MODE SELECT コマンドのモードページで指定されたパラメーターの組み合わせはサポートされていないことを報告しました。

値: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
ドライブが、メディアは書き込み保護されていることを報告しました。

値: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
メディアの速度がデバイスと互換性がありません。デバイスがサポートする速度範囲より高速または低速なメディアを使用していることが原因の可能性があります。

値: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
指定されたハンドルが無効です。

値: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
指定されたネットワークリソースまたはデバイスは、使用できなくなりました。

値: 55

E_IMAPI_RECORDER_LOCKED
前回の操作でこのレコーダーに関連付けられたデバイスが排他的にロックされているため、この操作は失敗しました。

値: 0xC0AA0210

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
デバイスが、要求されたモードページ (およびその種類) が存在しないことを報告しました。

値: 0xC0AA0201

vtbl 18 HRESULT GetByteAlignmentMask(DWORD* value)

デバイスのバイトアラインメントマスクを取得します。

valueDWORD*outバッファーがデバイスにとって正しいバイト境界にアラインされているかどうかを判定するために使用するバイトアラインメントマスク。バイトアラインメント値は常に 2 のべき乗の数値です。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

解説(Remarks)

IDiscRecorder2Ex::SendCommandSendDataToDevice および IDiscRecorder2Ex::SendCommandGetDataFromDevice のデータバッファーは、正しいバイト境界にアラインされている必要があります。バッファーが正しいバイト境界にあるかどうかを判定するには、このビットマスクとデータバッファーのアドレスのビットごとの論理積を求めます。たとえば、バッファーのアドレスが 0x3840958 の場合、次のステートメントで正しくアラインされているかどうかをテストできます。

if (0x3840958 & (value - 1) == 0)
{
    // アラインメントは正しい
}
vtbl 19 HRESULT GetMaximumNonPageAlignedTransferSize(DWORD* value)

デバイスにおける、ページ境界にアラインされていないバッファーの最大転送サイズを取得します。

valueDWORD*outページ境界にアラインされていないバッファーの最大サイズ (バイト単位)。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

解説(Remarks)

これは、デバイスが 1 回のコマンドで受け付けられる最大のバッファーサイズです。このサイズのバッファーを使用すると、データ交換量を最大にできます。バッファーは物理メモリのページ境界から始まる必要はありません。

vtbl 20 HRESULT GetMaximumPageAlignedTransferSize(DWORD* value)

デバイスにおける、ページ境界にアラインされたバッファーの最大転送サイズを取得します。

valueDWORD*outページ境界にアラインされたバッファーの最大サイズ (バイト単位)。

戻り値

成功時には S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。操作が失敗した場合、一般的には次のエラーコードが返されますが、返される可能性がある値はこれらだけではありません。

戻り値 説明
E_POINTER
ポインターが有効ではありません。

値: 0x80004003

E_FAIL
不特定のエラーです。

値: 0x80004005

解説(Remarks)

デバイスが 1 回のコマンドで受け付けられる、ページ境界にアラインされたバッファーの最大サイズ。この転送サイズのバッファーは、物理メモリのページ境界から始まる必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDiscRecorder2Ex "{27354132-7F64-5B0F-8F00-5D77AFBE261E}"
#usecom global IDiscRecorder2Ex IID_IDiscRecorder2Ex "{}"
#comfunc global IDiscRecorder2Ex_SendCommandNoData                     3 var,int,var,int
#comfunc global IDiscRecorder2Ex_SendCommandSendDataToDevice           4 var,int,var,int,var,int
#comfunc global IDiscRecorder2Ex_SendCommandGetDataFromDevice          5 var,int,var,int,var,int,var
#comfunc global IDiscRecorder2Ex_ReadDvdStructure                      6 int,int,int,int,var,var
#comfunc global IDiscRecorder2Ex_SendDvdStructure                      7 int,var,int
#comfunc global IDiscRecorder2Ex_GetAdapterDescriptor                  8 var,var
#comfunc global IDiscRecorder2Ex_GetDeviceDescriptor                   9 var,var
#comfunc global IDiscRecorder2Ex_GetDiscInformation                    10 var,var
#comfunc global IDiscRecorder2Ex_GetTrackInformation                   11 int,int,var,var
#comfunc global IDiscRecorder2Ex_GetFeaturePage                        12 int,int,var,var
#comfunc global IDiscRecorder2Ex_GetModePage                           13 int,int,var,var
#comfunc global IDiscRecorder2Ex_SetModePage                           14 int,var,int
#comfunc global IDiscRecorder2Ex_GetSupportedFeaturePages              15 int,var,var
#comfunc global IDiscRecorder2Ex_GetSupportedProfiles                  16 int,var,var
#comfunc global IDiscRecorder2Ex_GetSupportedModePages                 17 int,var,var
#comfunc global IDiscRecorder2Ex_GetByteAlignmentMask                  18 var
#comfunc global IDiscRecorder2Ex_GetMaximumNonPageAlignedTransferSize  19 var
#comfunc global IDiscRecorder2Ex_GetMaximumPageAlignedTransferSize     20 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。