다음을 통해 공유


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
드라이브가 쓰기를 계속할 만큼 신속하게 데이터를 받지 못했기 때문에 쓰기에 실패했습니다. 원본 데이터를 로컬 컴퓨터로 이동하거나, 쓰기 속도를 줄이거나, "버퍼 언더런 무료" 설정을 사용하도록 설정하면 이 문제가 resolve 수 있습니다.

값: 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