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
允許傳送命令接收結果的時間限制,以秒為單位。
[out] Buffer
應用程式配置的數據緩衝區,將接收與傳送命令相關聯的數據。 不得為 NULL。
[in] BufferSize
緩衝區數據緩衝區的大小,以位元組為單位。 不得為零。
[out] BufferFetched
緩衝區數據緩衝區中傳回的數據大小,以位元組為單位。
傳回值
S_OK或下列其中一個值可以在成功時傳回,但可能會因為實作而傳回其他成功碼:
傳回碼 | Description |
---|---|
|
裝置會失敗命令,但會傳回有意義的數據。 |
下列錯誤碼通常會在作業失敗時傳回,但不代表唯一可能的錯誤值:
傳回碼 | Description |
---|---|
|
指標無效。
值:0x80004003 |
|
未指定的失敗。
值:0x80004005 |
|
磁碟驅動器不支援 GET CONFIGURATION 命令。
值:0xC0AA020C |
|
裝置不支援所要求的功能頁面。
值:0xC0AA020A |
|
無法配置所需的記憶體。
值:0x8007000E |
|
支援要求的功能頁面,但未標示為目前。
值:0xC0AA020B |
|
裝置無法在逾時期間內接受命令。 這可能是因為裝置進入不一致的狀態而造成,或者可能需要增加命令的逾時值。
值:0xC0AA020D |
|
裝置回報命令的非預期或無效數據。
值:0xC0AA02FF |
|
媒體會向下插入。
值:0xC0AA0204 |
|
磁碟驅動器回報它正在準備好。 請稍後再試一次要求。
值:0xC0AA0205 |
|
裝置中沒有媒體。
值:0xC0AA0202 |
|
媒體目前正在格式化。 請先等候格式完成,再嘗試使用媒體。
值:0xC0AA0206 |
|
磁碟驅動器回報正在執行長時間執行的作業,例如完成寫入。 磁碟驅動器可能長時間無法使用。
值:0xC0AA0207 |
|
寫入失敗,因為磁碟驅動器未快速收到足以繼續寫入的數據。 將源數據移至本機計算機、減少寫入速度,或啟用 [緩衝區不足] 設定可能會解決此問題。
值:0xC0AA0300 |
|
媒體不相容或未知的實體格式。
值:0xC0AA0203 |
|
DVD 結構不存在。 這可能是因為使用的磁碟驅動器/媒體不相容所造成。
值:0xC0AA020E |
|
裝置回報要求的模式頁面 (,且類型) 不存在。
值:0xC0AA0201 |
|
磁碟驅動器報告不支援MODE SELECT 命令在模式頁面中提供的參數組合。
值:0xC0AA0208 |
|
磁碟驅動器回報媒體受到寫入保護。
值:0xC0AA0209 |
|
媒體的速度與裝置不相容。 這可能是因為使用比裝置支援的速度範圍還要高或較低的速度媒體所造成。
值:0xC0AA020F |
|
指定的句柄無效。
值:6 |
|
指定的網路資源或裝置已無法使用。
值:55 |
|
上次作業期間與此錄製器相關聯的裝置已獨佔鎖定,導致此作業失敗。
值:0xC0AA0210 |
備註
如需命令封包、感知數據和輸出數據緩衝區內容的詳細數據,請參閱 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 | 未來會針對此 Opcode 範圍強制執行標準指定的大小需求。 |
0x80 — 0x9F | 4 | 16 個位元組 |
0xA0 — 0xBF | 5 | 12 個字節 |
0xC0 — 0xDF | 6 | 廠商唯一 - 允許的任何大小 |
0xE0 — 0xFF | 7 | 廠商唯一 - 允許的任何大小 |
有些非常早期裝置使用廠商唯一的opcode,因此某些Opcode無法以此方式進行驗證。 下列 opcode 仍然有效,而且只會確認大小介於 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 |