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 또는 다음 값 중 하나가 반환될 수 있지만 구현의 결과로 다른 성공 코드가 반환될 수 있습니다.
반환 코드 | 설명 |
---|---|
|
디바이스가 명령에 실패하지만 센스 데이터를 반환합니다. |
다음 오류 코드는 일반적으로 작업 실패 시 반환되지만 가능한 유일한 오류 값은 나타내지 않습니다.
반환 코드 | 설명 |
---|---|
|
포인터가 잘못되었습니다.
값: 0x80004003 |
|
지정되지 않은 오류입니다.
값: 0x80004005 |
|
드라이브는 GET CONFIGURATION 명령을 지원하지 않습니다.
값: 0xC0AA020C |
|
요청된 기능 페이지는 디바이스에서 지원되지 않습니다.
값: 0xC0AA020A |
|
필요한 메모리를 할당하지 못했습니다.
값: 0x8007000E |
|
요청된 기능 페이지가 지원되지만 현재로 표시되지는 않습니다.
값: 0xC0AA020B |
|
디바이스가 시간 제한 기간 내에 명령을 수락하지 못했습니다. 이는 디바이스가 일관되지 않은 상태를 입력했거나 명령에 대한 시간 제한 값을 늘려야 할 수 있으므로 발생할 수 있습니다.
값: 0xC0AA020D |
|
디바이스가 명령에 대해 예기치 않거나 잘못된 데이터를 보고했습니다.
값: 0xC0AA02FF |
|
미디어가 거꾸로 삽입됩니다.
값: 0xC0AA0204 |
|
드라이브가 준비 중이라고 보고했습니다. 나중에 요청을 다시 시도하세요.
값: 0xC0AA0205 |
|
디바이스에 미디어가 없습니다.
값: 0xC0AA0202 |
|
미디어 형식이 현재 지정되고 있습니다. 미디어를 사용하기 전에 형식이 완료되기를 기다립니다.
값: 0xC0AA0206 |
|
드라이브는 쓰기 완료와 같은 장기 실행 작업을 수행하고 있다고 보고했습니다. 오랫동안 드라이브를 사용할 수 없습니다.
값: 0xC0AA0207 |
|
드라이브가 쓰기를 계속할 만큼 신속하게 데이터를 받지 못했기 때문에 쓰기에 실패했습니다. 원본 데이터를 로컬 컴퓨터로 이동하거나, 쓰기 속도를 줄이거나, "버퍼 언더런 무료" 설정을 사용하도록 설정하면 이 문제가 resolve 수 있습니다.
값: 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, 0x2D 0x2C
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista, WINDOWS XP SP2 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | imapi2.h |