Share via


IDiscFormat2Data::Write 方法 (imapi2.h)

將資料流程寫入裝置。

注意 若要成功寫入,傳入資料流程的大小必須是磁區大小的倍數 2048。 這包括使用與 IMAPI 未建立之 .iso 映像相關聯的資料流程的作業。

 

語法

HRESULT Write(
  [in] IStream *data
);

參數

[in] data

要寫入之資料流程的 IStream 介面。

傳回值

成功時會傳回S_OK,但可能會因為實作而傳回其他成功碼。 下列錯誤碼通常會在作業失敗時傳回,但不代表唯一可能的錯誤值:

傳回碼 描述
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_UNEXPECTED_RESPONSE_FROM_DEVICE
寫入失敗,因為磁片磁碟機傳回無法從中復原的錯誤資訊。

值:0xC0AA0301

E_IMAPI_RECORDER_REQUIRED
要求需要選取目前的光碟錄製器。

值:0xC0AA0003

S_IMAPI_ROTATIONADJUSTED
磁片磁碟機不支援要求的旋轉類型,而且已調整旋轉類型。

值:0x00AA0005

S_IMAPI_SPEEDADJUSTED
磁片磁碟機不支援要求的寫入速度,而且速度已調整。

值:0x00AA0004

S_IMAPI_BOTHADJUSTED
磁片磁碟機不支援要求的寫入速度和旋轉類型,而且兩者都已調整。

值:0x00AA0006

E_IMAPI_DF2DATA_RECORDER_NOT_SUPPORTED
此裝置不支援此磁片格式所需的作業。

值:0xC0AA0407

E_IMAPI_REQUEST_CANCELLED
已取消要求。

值:0xC0AA0002

E_IMAPI_DF2DATA_WRITE_IN_PROGRESS
目前正在進行寫入作業。

值:0xC0AA0400

E_IMAPI_DF2DATA_STREAM_NOT_SUPPORTED
提供的 IStream 物件大小無效。 大小必須是磁區大小的倍數,2048。

值:0xC0AA0403

E_IMAPI_DF2DATA_MEDIA_IS_NOT_SUPPORTED
不支援目前的媒體類型。

值: (HRESULT) 0xC0AA0406

E_INVALIDARG
一或多個引數無效。

值:0x80070057

E_POINTER
指標無效。

值:0x80004003

E_FAIL
未指定的失敗。

值:0x80004005

E_OUTOFMEMORY
無法配置所需的記憶體。

值:0x8007000E

E_NOTIMPL
未實作。

值:0x80004001

備註

呼叫這個方法之前,您必須呼叫下列方法:

如果預設值不適合您的應用程式,您也應該考慮呼叫下列方法: 這個方法是同步的,這表示在提供的 IStream 記錄到媒體之前,不會傳回控制項。 若要判斷寫入作業的進度,您必須實作 DDiscFormat2DataEvents 介面。 如需示範如何在腳本中實作事件處理常式的範例,請參閱 使用事件監視進度

在循序錄製的光碟上,提供的 IStream 會記錄為新的會話。 在可重寫的光碟上,提供的 IStream 一律會從磁區 0 開始記錄,但提供 IStream 介面的物件也可以提供 IBlockRangeList 介面,列出需要記錄的磁區。 IBlockRangeList介面可用來避免重寫在多工分割案例中未變更的磁區。 如果提供 IStream 的物件未提供 IBlockRangeList,則會假設必須記錄整個 IStream

需求

   
最低支援的用戶端 Windows Vista、Windows XP SP2 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 imapi2.h

另請參閱

DDiscFormat2DataEvents

IDiscFormat2Data

IDiscFormat2Data::CancelWrite