次の方法で共有


IDiscRecorder2Ex::SendCommandGetDataFromDevice メソッド (imapi2.h)

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

構文

HRESULT SendCommandGetDataFromDevice(
  [in]  BYTE                      *Cdb,
  [in]  ULONG                     CdbSize,
  [out] BYTE [18]                 SenseBuffer,
  [in]  ULONG                     Timeout,
  [out] BYTE                      *Buffer,
  [in]  ULONG_IMAPI2_NONZERO      BufferSize,
  [out] ULONG_IMAPI2_NOT_NEGATIVE *BufferFetched
);

パラメーター

[in] Cdb

デバイスに送信するコマンド パケット。

[in] CdbSize

送信するコマンド パケットのサイズ (バイト単位)。 6 ~ 16 バイトにする必要があります。

[out] SenseBuffer

記録デバイスによって返されるデータを検出します。

[in] Timeout

send コマンドが結果を受信できる時間制限 (秒単位)。

[out] Buffer

send コマンドに関連付けられたデータを受信するアプリケーション割り当てデータ バッファー。 NULL にすることはできません。

[in] BufferSize

バッファー データ バッファーのサイズ (バイト単位)。 0 にすることはできません。

[out] BufferFetched

バッファー データ バッファーで返されるデータのサイズ (バイト単位)。

戻り値

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

注釈

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

このメソッドで使用されるクライアント定義コマンド (CDN) の長さは 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

要件

要件
サポートされている最小のクライアント Windows Vista、WINDOWS XP と SP2 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー imapi2.h

こちらもご覧ください

IDiscRecorder2Ex

IDiscRecorder2Ex::SendCommandNoData

IDiscRecorder2Ex::SendCommandSendDataToDevice