IDiscRecorder2Ex::SendCommandNoData 메서드(imapi2.h)

기록 디바이스에 MMC 명령을 보냅니다. 데이터 버퍼가 디바이스로 전송되거나 디바이스에서 수신되지 않는 경우 이 함수를 사용합니다.

구문

HRESULT SendCommandNoData(
  [in]  BYTE      *Cdb,
  [in]  ULONG     CdbSize,
  [out] BYTE [18] SenseBuffer,
  [in]  ULONG     Timeout
);

매개 변수

[in] Cdb

디바이스로 보낼 명령 패킷입니다.

[in] CdbSize

보낼 명령 패킷의 크기(바이트)입니다. 6바이트에서 16바이트 사이여야 합니다.

[out] SenseBuffer

기록 디바이스에서 반환된 센스 데이터입니다.

[in] Timeout

send 명령이 결과를 수신하는 데 허용되는 시간 제한(초)입니다.

반환 값

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

설명

명령 패킷 및 센스 데이터의 내용에 대한 자세한 내용은 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, 0x2D 0x2C

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista, WINDOWS XP SP2 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 imapi2.h

추가 정보

IDiscRecorder2Ex

IDiscRecorder2Ex::SendCommandGetDataFromDevice

IDiscRecorder2Ex::SendCommandSendDataToDevice