광학 로고 테스트 - BD-ROM
이 테스트는 광학 디바이스가 표준을 준수하고 Windows 광학 드라이브 요구 사항을 충족하는지 유효성을 검사합니다.
테스트 세부 정보
사양 |
|
플랫폼 |
|
지원되는 릴리스 |
|
예상 실행 시간(분) | 30 |
범주 | 시나리오 |
시간 제한(분) | 1800 |
다시 부팅 필요 | false |
특별한 구성 필요 | false |
형식 | automatic |
추가 설명서
이 기능 영역의 테스트에는 다음 항목에서 찾을 수 있는 필수 조건, 설정, 문제 해결 정보를 포함한 추가 설명서가 있을 수 있습니다.
테스트 실행
테스트를 실행하기 전에 테스트 요구 사항: 광 디스크 드라이브 테스트 필수 조건에 설명된 대로 테스트 설정을 완료합니다.
테스트는 기본 및 보조 드라이브 트레이 구성을 가져오는 구성 대화 상자를 보여 줍니다. 사용자는 기록기 드라이브 대화 상자의 드라이브 목록에서 동일한 보조 드라이브를 선택해야 하며 자동 꺼내기 및 트레이 자동 로드 지원 여부에 관계없이 드라이브 트레이 기능을 선택해야 합니다.
참고
테스트 컴퓨터에서 실행되는 I/O 집약적인 애플리케이션은 광학 로고 테스트 성능 측정 시나리오를 방해할 수 있습니다. 테스트가 실행 중일 때 테스트 컴퓨터에서 실행 중인 다른 애플리케이션이 없는지 확인합니다.
문제 해결
HLK 테스트 실패의 일반적인 문제 해결은 Windows HLK 테스트 실패 문제 해결을 참조하세요.
문제 해결 정보는 Device.Storage 테스트 문제 해결을 참조하세요.
다음은 이 테스트와 관련하여 알려진 문제입니다.
버스 다시 설정 테스트 시나리오는 기본적으로 사용하지 않도록 설정되어 있습니다.
기본적으로 테스트는 버스 다시 설정 시 적절한 디바이스 동작의 유효성을 검사하지 않습니다.
버스 다시 설정이 발생하면 드라이브가 올바르게 다시 설정되고 다시 온라인 상태가 되어 정상적으로 작동해야 합니다. 일부 결함이 있는 드라이브는 자체적으로 제대로 다시 설정되지 않고 버스 다시 설정 후에 작동하지 않습니다. 이는 적절한 구현이 아닙니다. 이 특정 테스트 시나리오가 사용하도록 설정되면 명령 검증 테스트 사례(디바이스 및 프로필 테스트 사례 모두)는 잘못된 SRB 데이터 방향 플래그와 함께 명령을 보냅니다. 이는 일반적으로 버스를 멈추게 하고 결국 포트 드라이버가 주어진 시간 초과 기간 후에 버스를 다시 설정하게 합니다.
대부분의 스토리지 컨트롤러는 이 테스트 시나리오를 제대로 지원하지 않습니다. 잘못 구현된 스토리지 컨트롤러는 버스 다시 설정 후에 복구되지 않습니다. 이 경우 디바이스가 제대로 구현되었더라도 스토리지 컨트롤러로 인해 테스트 사례가 실패할 수 있습니다. 이 테스트는 디바이스 오류와 스토리지 컨트롤러 오류를 구별할 수 없습니다. 따라서 이 특정 시나리오를 테스트하는 것은 기본적으로 사용하지 않도록 설정되어 있습니다. 이 특정 시나리오를 테스트하려면 "RunDataDirectionFlagScenario" 명령줄 옵션을 사용하여 테스트 실행 파일을 실행해야 합니다.
추가 정보
드라이브는 다음 명령을 지원해야 합니다.
Get Configuration(미디어 없음)
Get Event Status Notification
Inquiry
Mechanism Status
Mode Sense
Prevent Allow Medium Removal
Request Sense
Start Stop Unit
Test Unit Ready
드라이브는 지원하는 기능 및 프로필에 대해 필수인 경우 다음 명령을 지원해야 합니다.
Get Configuration(미디어 포함)
Get Performance
Read Buffer Capacity
Read Capacity
Read Disc Information
Read Format Capacities
Read Toc Pma Atip
Send Opc Information
Set CD Speed
Read10
드라이브는 지원하는 기능 및 프로필에 대해 이러한 시나리오와 관련된 명령이 필수인 경우 다음 시나리오를 지원해야 합니다.
이벤트 상태 알림
쓰기
순차 모드
패킷 모드
제한된 덮어쓰기
멀티 세션 지원
오디오 미디어(오디오 트랙 쓰기)
비어 있음
고유한 드라이브 일련 번호
실시간 스트리밍
오디오 미디어 끊김 없는 원시 녹음
테스트 사례는 다음 세 그룹으로 구분됩니다.
디바이스 테스트 사례. 다음 명령은 디바이스에 적용할 수 있는 테스트 사례를 확인합니다.
GET CONFIGURATION(미디어 없음)
GET EVENT STATUS NOTIFICATION
INQUIRY
MECHANISM STATUS
MODE SENSE
PREVENT ALLOW MEDIUM REMOVAL
REQUEST SENSE
START STOP UNIT
TEST UNIT READY
프로필 테스트 사례. 다음 명령 확인 테스트 사례는 적용 가능한 모든 프로필에서 테스트됩니다.
GET CONFIGURATION
GET PERFORMANCE
READ CAPACITY
READ BUFFER CAPACITY
READ DISC INFORMATION
READ FORMAT CAPACITIES
READ TOC PMA ATIP
SEND OPC INFORMATION
SET CD SPEED
READ10
사용량 시나리오 테스트 사례. 다음 시나리오는 IMAPI 굽기 엔진 인터페이스를 사용하여 테스트됩니다.
이벤트 상태 알림
BLANK
쓰기/멀티세션
오디오 미디어
듀얼 레이어 미디어 쓰기
드라이브 일련 번호
읽기 전용 드라이브
실시간 스트리밍
오디오 미디어 끊김 없는 원시 녹음
이 테스트에는 다음 테스트 사례가 포함됩니다.
GET CONFIGURATION 명령(미디어 없음)
GET EVENT STATUS NOTIFICATION 명령
INQUIRY 명령
MECHANISM STATUS 명령
MODE SENSE 명령
PREVENT ALLOW MEDIUM REMOVAL 명령
REQUEST SENSE 명령
시작 중지 단위 명령, EJECT 및 로드 성능
TEST UNIT READY 명령
GET CONFIGURATION 명령
GET PERFORMANCE
READ CAPACITY 명령
READ BUFFER CAPACITY 명령
READ DISC INFORMATION 명령
READ FORMAT CAPACITIES 명령
READ TOC/PMA/ATIP 명령
SEND OPC INFORMATION 명령
SET CD SPEED 명령
READ10 명령
EVENT NOTIFICATION
테스트 작성
오디오 미디어(오디오 트랙 쓰기)
BLANK
듀얼 레이어 미디어 쓰기
읽기 전용 드라이브
드라이브 일련 번호
실시간 스트리밍
쓰기 속도 측정
오디오 미디어 끊김 없는 원시 녹음
GET CONFIGURATION 명령(미디어 없음)
설명: 이 테스트는 트레이에 미디어가 없을 때 드라이브가 GET CONFIGURATION 명령에 올바르게 응답하는지 확인하기 위한 것입니다.
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
START STOP UNIT 명령을 보내 트레이를 꺼냅니다.
트레이가 열릴 때까지 기다립니다.
기능 헤더 데이터 길이를 가져오려면 응답 데이터 길이가 4바이트인 GET CONFIGURATION 명령을 보냅니다. 명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다. 목적: 소프트웨어가 명령 지원을 조사할 수 있도록 합니다.
드라이브가 기능 헤더에 현재 프로필을 보고하지 않는지 확인합니다. 드라이브가 현재 프로필을 "현재 프로필 없음"으로 재현하지 않으면 테스트 사례에 실패합니다.
GET CONFIGURATION 명령을 RT=00b와 3단계에서 디바이스에서 반환한 올바른 데이터 길이로 다시 보냅니다. 목적: 소프트웨어가 드라이브에서 지원하는 전체 기능 목록을 검색할 수 있도록 합니다.
드라이브가 기능 헤더에 현재 프로필을 보고하지 않는지 확인합니다. 드라이브가 현재 프로필을 "현재 프로필 없음"으로 재현하지 않으면 테스트 사례에 실패합니다.
현재 프로필 비트 세트에 대한 응답에서 프로필 목록 기능 설명자를 가져오고 프로필 설명자 중 하나에 현재 프로필 비트가 1로 설정된 경우 테스트 사례에 실패합니다.
응답 데이터 길이 20바이트, RT=01b, 시작 기능 번호=0010h(임의 읽기 가능 기능)와 함께 GET CONFIGURATION 명령을 보냅니다. 명령이 실패하거나 임의 읽기 가능 기능 설명자가 반환되지 않으면 감지 키를 적절하게 인쇄하고 테스트 사례에 실패합니다. 목적: 소프트웨어가 특정 기능 통화(현재가 아님)를 조사할 수 있도록 합니다.
[선택 사항] 기능 헤더 데이터 길이를 가져오려면 데이터 방향 플래그가 "디바이스로"로 설정되고 응답 데이터 길이가 4바이트인 GET CONFIGURATION 명령을 보냅니다. 명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다. 목적: 디바이스가 잘못된 데이터 방향으로 명령을 처리하는지 확인합니다.
트레이를 넣습니다.
디바이스가 준비 상태가 될 때까지 기다리세요.
응답 데이터 길이 16바이트, RT=01b, 시작 기능 번호=0003h(이동식 매체 기능)와 함께 GET CONFIGURATION 명령을 보냅니다. 명령이 실패하면 감지 키를 적절하게 인쇄하고 테스트 사례에 실패합니다. 명령이 성공하면:
드라이브가 자동 꺼내기 메커니즘을 지원하는 경우 "꺼내기" 비트가 설정되어 있는지 확인합니다.
드라이브가 자동 주입 메커니즘을 지원하는 경우 "로드" 비트가 설정되어 있는지 확인합니다.
결과: 드라이브가 GET CONFIGURATION 명령에 올바르게 응답해야 합니다.
GET EVENT STATUS NOTIFICATION 명령
설명: 드라이브가 GET EVENT STATUS NOTIFICATION 명령을 지원하는지 유효성 검사하려면
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
CDB에서 다음 값과 함께 Get Event Status Notification 명령을 보냅니다.
알림 클래스 요청 = 0x7E(동작 변경, 전원 관리, 외부 요청, 미디어, 다중 호스트, 디바이스 사용 중),
폴링 =1
응답 헤더의 크기와 동일한 할당 길이(4바이트)
명령이 실패하면 테스트 사례에 실패합니다.
응답에서 지원되는 이벤트를 확인합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 CDB에서 다음 값으로 Get Event Status Notification 명령을 보냅니다.
알림 클래스 요청 = 0x7E(동작 변경, 전원 관리, 외부 요청, 미디어, 다중 호스트, 디바이스 사용 중),
폴링 =1
응답 헤더의 크기와 동일한 할당 길이(4바이트)
명령이 실패하면 테스트 사례에 실패합니다.
응답에서 이벤트 데이터 길이가 0x6이고 NEA 비트가 지워지고 알림 클래스가 0이 아니며 지원되는 이벤트 클래스가 3단계와 동일한지 확인합니다. 그렇지 않으면 테스트 사례에 실패합니다.
CDB에서 다음 값과 함께 Get Event Status Notification 명령을 보냅니다.
알림 클래스 요청 = 0x7E(작업 변경, 전원 관리, 외부 요청, 미디어, 다중 호스트, 디바이스 사용 중).
폴링 =1
응답 헤더의 크기와 동일한 할당 길이(4바이트)
명령이 실패하면 테스트 사례에 실패합니다.
결과: 드라이브는 GET EVENT STATUS NOTIFICATION 명령에 올바르게 응답해야 합니다.
INQUIRY 명령
설명: 드라이브가 INQUIRY 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
할당 길이가 08h인 INQUIRY 명령을 보냅니다. 목적: 소프트웨어가 필요한 응답 버퍼 크기를 조사할 수 있도록 합니다.
명령이 성공하면 헤더의 추가 길이에 대한 응답을 확인합니다. 추가 길이는 32d 이상이어야 합니다[MMC5r04 6.9.2].
할당 길이를 2단계에서 추가한 길이보다 5바이트 더 길게 설정하여 INQUIRY 명령을 다시 보냅니다.
명령이 성공하면 응답 데이터 필드가 MMC5r04 테이블 320에 지정된 값과 일치하는지 확인합니다.
공급업체 식별, 제품 식별 및 제품 수정 버전 수준이 null이 아닌지 확인합니다.
- 목적: 소프트웨어에 의한 기본 식별입니다.
다음 값이 일치하는지 확인합니다.
디바이스 유형 = 5
디바이스 유형 한정자 = 0
이동식 미디어 = 1
응답 데이터 서식 = 2
계층 구조 지원 = 0
일반 ACA = 0
보호 = 0
타사 사본 = 0
대상 포트 그룹 지원 = 0
액세스 제어 조정자 = 0
지원되는 SCC = 0
Addr16 = 0
미디어 교환기 = 0
다중 포트 = 0
VS1 = 0
인클로저 서비스 = 0
BQue = 0
VS2 = 0
명령 큐 = 0
연결된 명령 = 0
동기 = 0
Wide16 = 0
CDB에서 다음 값과 함께 INQUIRY 명령을 보냅니다.
EVPD = 0
할당 길이 = 240
CDB에서 다음 값과 함께 INQUIRY 명령을 보냅니다.
EVPD = 1
할당 길이 = 240
명령이 성공하면 7단계와 8단계의 응답을 비교하고 둘 다 같으면 테스트 사례에 실패합니다.
임의 할당 길이로 10에서 25 사이의 임의 횟수에 대해 INQUIRY 명령을 보냅니다. 명령이 실패하면 테스트 사례에 실패합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 CDB에 다음 값이 포함된 INQUIRY 명령을 보냅니다.
EVPD = 0
할당 길이 = 240
결과: 드라이브가 INQUIRY 명령에 올바르게 응답해야 합니다.
MECHANISM STATUS 명령
설명: 드라이브가 MECHANISM STATUS 명령을 지원하는지 유효성 검사하기 위해
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
할당 길이가 0바이트인 MECHANISM STATUS 명령을 보냅니다(데이터 감지가 지정되지 않음). 명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
- 목적: 소프트웨어가 명령 지원을 조사하도록 허용합니다.
트레이를 꺼냅니다.
디바이스가 감지 데이터를 반환할 때까지 기다립니다(Sense Key: 0x2, ASC: 0x3A, ASCQ: 0x02).
할당 길이가 8바이트인 MECHANISM STATUS 명령을 보냅니다.
도어 열림 비트가 1b인지 확인합니다.
- 목적: 소프트웨어가 도어가 열려 있거나 닫혀 있는지(열림) 검색하도록 허용합니다.
트레이를 넣습니다.
디바이스가 준비될 때까지 기다리세요
할당 길이가 8바이트인 MECHANISM STATUS 명령을 보냅니다.
도어 열림 비트가 0b인지 확인합니다.
- 목적: 소프트웨어가 문이 열렸는지 닫혔는지(닫힘) 검색할 수 있도록 합니다.
8바이트 버퍼를 만들고 임의의 데이터로 채웁니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 할당 길이가 8바이트인 MECHANISM STATUS 명령을 보냅니다. 11단계의 버퍼를 디바이스로 전달합니다.
결과: 드라이브가 MECHANISM STATUS 명령에 올바르게 응답해야 합니다.
MODE SENSE 명령
설명: 드라이브가 Mode Sense 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
지원되는 모든 모드 페이지를 가져오려면 CDB에서 다음 값과 함께 MODE SENSE 명령을 보내세요.
페이지 컨트롤 = 0
블록 설명자 사용하지 않도록 설정 = 1
페이지 코드 = 0x3F
할당 길이 = 0x8000
응답에서 다음 값을 확인합니다.
모드 매개 변수 헤더의 블록 설명자 길이가 0입니다.
각 모드 페이지 데이터의 페이지 길이는 MMC5에 문서화된 값과 같습니다.
보고된 각 페이지에 대한 모드 페이지 데이터 유효성 검사
보고된 각 페이지에 대해 Mode Sense 명령을 CDB에 다음 값과 함께 보냅니다.
페이지 컨트롤 = 0
블록 설명자 사용하지 않도록 설정 = 1
할당 길이 = 2단계에서 드라이브가 보고한 페이지 길이
응답에서 다음 값을 확인합니다.
모드 매개 변수 헤더의 블록 설명자 길이는 0입니다.
모드 페이지 헤더의 페이지 코드가 요청된 페이지 코드와 일치합니다.
모드 페이지 헤더의 페이지 길이는 MMC5의 가치 문서와 같습니다.
할당 길이가 0xFFF0인 Mode Sense 명령을 보냅니다.
응답에서 다음 값을 확인합니다.
모드 매개 변수 헤더의 블록 설명자 길이가 0입니다.
모드 페이지 헤더의 페이지 코드가 요청된 페이지 코드와 일치합니다.
할당 길이가 0x0A인 Mode Sense 명령을 보냅니다.
응답이 응답 크기(0x0A)까지 바이트 단위로 일치하는지 확인하고 할당 길이에 대한 응답은 0xFFF0입니다.
Mode Sense 명령을 0x0A와 0xFFF0 사이의 임의 할당 길이로 10에서 25 사이의 임의 횟수로 보냅니다.
응답이 0xFFF0과 같은 할당 길이에 대한 응답으로 응답 크기(0x0A와 0xFFF0 사이의 임의 값)까지 바이트 단위로 일치하는지 확인합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 CDB에 다음 값이 포함된 MODE SENSE 명령을 보내 지원되는 모든 모드 페이지를 가져옵니다.
페이지 컨트롤 = 0
블록 설명자 사용하지 않도록 설정 = 1
페이지 코드 = 0x3F
할당 길이 = 0x8000
결과: 드라이브가 GET CONFIGURATION 명령에 올바르게 응답해야 합니다.
PREVENT ALLOW MEDIUM REMOVAL 명령
설명: 드라이브가 PREVENT ALLOW MEDIUM REMOVAL 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
방지 비트를 1로 설정하고 영구 비트를 0으로 설정하여 PREVENT ALLOW MEDIUM REMOVAL 명령을 보냅니다. 이렇게 하면 드라이브가 잠깁니다. 명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
LocEj 비트를 1로 설정하고 즉시 비트를 0으로 설정하고 시작 비트를 0으로 설정하여 start stop unit 명령을 보냅니다. 이렇게 하면 디스크를 꺼낼 수 있습니다. 드라이브가 감지 데이터 0x05 0x53, 0x02 명령을 거부하지 않으면 오류입니다.
Test Unit ready 명령을 보내고 성공했는지 확인합니다.
미디어를 꺼내려면 꺼내기 단추를 누르도록 사용자에게 요청합니다.
Test Unit ready 명령을 보내고 여전히 성공하는지 확인합니다(문이 열리지 않아야 함).
방지 비트를 0으로 설정하고 영구 비트를 0으로 설정하여 Prevent Allow Medium Removal 명령을 보냅니다. 이렇게 하면 드라이브의 잠금이 해제됩니다. 명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
사용자에게 꺼내기 단추를 눌러 미디어를 꺼내도록 요청합니다.
디바이스가 문을 열 때까지 대기 - Test Unit ready 명령을 보내고 명령이 성공하면 1초 동안 기다렸다가 실패할 때까지(02/3A/02) 다시 시도합니다. 30초 후의 시간 제한입니다.
드라이브가 자동 로딩 메커니즘을 지원하는 경우 트레이를 드라이브에 다시 넣지 않으면 사용자에게 드라이브에 트레이를 다시 삽입하도록 요청합니다.
디바이스가 준비될 때까지 기다리세요
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정된 PREVENT ALLOW MEDIUM REMOVAL 명령을 보내고 임의 크기 버퍼에 임의 데이터를 전달합니다.
결과: 드라이브는 PREVENT ALLOW MEDIUM REMOVAL 명령에 올바르게 응답해야 합니다.
REQUEST SENSE 명령
설명: 드라이브가 REQUEST SENSE 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
설명자 비트를 0으로 설정하고 할당 길이를 252로 설정하여 REQUEST SENSE 명령을 보냅니다. 드라이브는 고정 형식 감지 데이터로 응답해야 합니다.
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
응답 코드가 0x70 또는 0x71이면 테스트에 통과하고 그렇지 않으면 테스트에 실패합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 설명자 비트가 0으로 설정되고 할당 길이가 252로 설정되어 REQUEST SENSE 명령을 보냅니다. 드라이브는 고정 형식 감지 데이터로 응답해야 합니다.
결과: 드라이브가 REQUEST SENSE 명령에 올바르게 응답해야 합니다.
START STOP UNIT 명령, EJECT 및 LOAD PERFORMANCE
설명: 드라이브가 START STOP UNIT 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
CDB에 다음 값과 함께 START STOP UNIT 명령을 보냅니다.
Immediate = 0, LoadEject = 0, Start = 0, PowerConditions = 0
Immediate = 0, LoadEject = 0, Start = 1, PowerConditions = 0
Immediate = 1, LoadEject = 0, Start = 0, PowerConditions = 0
Immediate = 1, LoadEject = 0, Start = 1, PowerConditions = 0
명령은 이 조합 각각에 대해 성공합니다.
드라이브가 트레이 꺼내기를 지원하면 CDB에 다음 값과 함께 START STOP UNIT 명령을 보내 트레이를 꺼냅니다.
- Immediate = 1, LoadEject = 1, Start = 0, PowerConditions = 0
디바이스가 문을 열 때까지 대기 - TEST UNIT READY 명령을 보내고 명령이 성공하면 5초 동안 기다렸다가 실패할 때까지(02/3A/02) 다시 시도합니다. 10초 후의 시간 제한입니다.
드라이브가 트레이 로드(자동 주입)를 지원하는 경우 CDB에 다음 값과 함께 START STOP UNIT 명령을 보내 트레이를 주입합니다.
- Immediate = 1, LoadEject = 1, Start = 1, PowerConditions = 0
드라이브가 트레이 로드를 지원하지 않는 경우 사용자에게 트레이를 드라이브에 다시 삽입하도록 요청합니다.
디바이스가 준비될 때까지 대기 - TEST UNIT READY 명령을 보내고 감지 키로 명령이 실패하면 1초 동안 기다렸다가 성공할 때까지 다시 시도합니다. 30초 후의 시간 제한입니다. 프리미엄 로고: 시간 초과: 20초.
트레이를 꺼내려면 CDB에 다음 값과 함께 START STOP UNIT 명령을 보냅니다.
- Immediate = 0, LoadEject = 1, Start = 0, PowerConditions = 0
디바이스가 문을 열 때까지 대기 - TEST UNIT READY 명령을 보내고 명령이 성공하면 1초 동안 기다렸다가 실패할 때까지(02/3A/02) 다시 시도합니다. 30초 후의 시간 제한입니다.
사용자에게 미디어를 제거하도록 요청
드라이브가 트레이 로드(자동 주입)를 지원하는 경우 CDB에 다음 값과 함께 START STOP UNIT 명령을 보내 트레이를 주입합니다.
- Immediate = 0, LoadEject = 1, Start = 1, PowerConditions = 0
준비 안 됨/미디어 없음/트레이 닫힘(02/3A/01)으로 명령이 실패하는지 확인합니다.
드라이브가 트레이 꺼내기를 지원하는 경우 CDB에서 다음 값과 함께 START STOP UNIT 명령을 보내 트레이를 꺼냅니다.
- Immediate = 0, LoadEject = 1, Start = 0, PowerConditions = 0
사용자에게 용지함에 용지를 넣으라고 요청합니다.
드라이브가 트레이 로드를 지원하지 않는 경우 사용자에게 트레이를 드라이브에 다시 삽입하고 디바이스가 준비될 때까지 기다리라고 요청합니다. 드라이브가 트레이 로드(자동 넣기)를 지원하는 경우 CDB에 다음 값과 함께 START STOP UNIT 명령을 보내 트레이를 넣고 디바이스가 준비될 때까지 기다립니다.
- Immediate = 0, LoadEject = 1, Start = 1, PowerConditions = 0
[선택 사항] "디바이스로"로 설정된 데이터 방향 플래그와 함께 START STOP UNIT 명령을 보냅니다. 임의의 데이터와 CDB의 다음 값을 포함하는 임의의 크기 버퍼를 보냅니다.
- Immediate = 0, LoadEject = 0, Start = 0, PowerConditions = 0
결과: 드라이브가 START STOP UNIT 명령에 올바르게 응답해야 합니다.
TEST UNIT READY 명령
설명: 드라이브가 TEST UNIT READY 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
TEST UNIT READY 명령을 보냅니다.
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 임의의 데이터로 채워진 임의의 크기 버퍼와 함께 TEST UNIT READY 명령을 보냅니다.
결과: 드라이브는 TEST UNIT READY 명령에 올바르게 응답해야 합니다.
GET CONFIGURATION 명령
설명: 드라이브가 보고된 프로필에 대해 GET CONFIGURATION 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
응답 데이터 길이가 0바이트인 GET CONFIGURATION 명령을 보냅니다(데이터 감지가 지정되지 않음). 명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
- 목적: 소프트웨어가 명령 지원을 조사할 수 있도록 합니다.
기능 헤더 데이터 길이를 가져오려면 응답 데이터 길이가 4바이트인 GET CONFIGURATION 명령을 보냅니다. 명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
- 목적: 소프트웨어가 명령 지원을 조사할 수 있도록 합니다.
응답 데이터 길이가 8바이트(헤더 가져오기), RT=00b, 시작 기능 번호=0000h인 GET CONFIGURATION 명령을 보냅니다. 명령이 실패하거나 현재 프로필이 00h인 경우 감지 키를 적절하게 인쇄하고 테스트 사례에 실패합니다.
목적:
소프트웨어가 필요한 응답 버퍼 크기를 조사할 수 있도록 합니다.
소프트웨어가 현재 프로파일을 조사하도록 허용합니다(프로파일은 현재입니다).
명령이 성공하면 응답에서 다음을 확인합니다.
헤더의 데이터 길이는 0이 아니며 4바이트로 정렬됩니다.
현재 프로필 번호가 드라이브에 로드된 미디어 유형과 일치합니다.
3단계, RT=00b, 시작 기능 번호=0000h에서 읽은 응답 데이터 길이와 함께 GET CONFIGURATION 명령을 보냅니다. 현재 프로필을 읽고 지원되는 프로필 목록에서 이 프로필 코드를 찾습니다. 현재 프로필이 삽입된 미디어의 프로필 유형과 일치하는지 확인합니다. 명령이 실패하거나 현재 프로필이 지원되는 프로필 목록에서 최신으로 보고되지 않으면 감지 키를 적절하게 인쇄하고 테스트 사례에 실패합니다.
- 목적: 드라이브에서 보고하는 정보의 일관성을 보장합니다.
RT=00b로 GET CONFIGURATION 명령을 다시 보내고 길이가 2바이트에 맞는 경우 3단계에서 디바이스가 반환한 올바른 데이터 길이를 사용합니다. 길이가 2바이트를 초과하는 경우 최대 데이터 길이를 2바이트로 명령을 보냅니다.
- 목적: 소프트웨어가 드라이브에서 지원하는 전체 기능 목록을 검색할 수 있도록 합니다.
길이가 2바이트를 초과하는 경우 반환된 마지막 완전한 기능 설명자의 기능 번호를 읽고 RT=10b 및 이 기능 번호에 1을 더한 것과 동일한 시작 기능 번호로 추가 GET CONFIGURATION 명령을 실행합니다. 기능 헤더에 반환된 데이터 길이가 할당된 길이와 같거나 작을 때까지 작업을 반복합니다. 10단계에서 검증을 위해 결과 기능 설명자를 연결합니다.
3-6단계에서 이어지는 모든 명령에 대해 응답 헤더의 데이터 길이가 4의 배수(4바이트 정렬)인지 확인합니다. 4바이트로 정렬되지 않으면 실패합니다. 목적: 소프트웨어는 4바이트 정렬을 가정합니다.
또한 명령이 성공하면 보고된 각 기능 버전 및 추가 길이 필드가 MMC-5 문서의 지정된 기능에 대한 해당 값과 같거나 큰지 확인합니다. 예: 핵심 기능의 버전은 0010b 이상이어야 하며 추가 길이는 8 이상이어야 합니다. 목적: 드라이브에서 보고하는 정보의 일관성을 보장합니다. 이동식 미디어 기능이 보고되면 GET CONFIGURATION 명령에 지정된 대로 버전 번호가 1이어야 합니다.
또한 명령이 성공하면 보고된 지원 프로필에 대한 각 필수 기능이 보고되는지 확인합니다.
- 목적: 드라이브에서 보고하는 메타 정보의 일관성을 보장합니다.
응답 데이터 길이 20바이트, RT=01b, 시작 기능 번호=0010h(임의 읽기 가능 기능)와 함께 GET CONFIGURATION 명령을 보냅니다. 명령이 실패하거나 임의 읽기 가능 기능 설명자가 반환되지 않으면 감지 키를 적절하게 인쇄하고 테스트 사례에 실패합니다. 목적: 소프트웨어가 특정 기능 통화(현재)를 조사할 수 있도록 합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 임의 크기 버퍼가 임의 데이터로 채워진 상태에서 GET CONFIGURATION 명령을 보냅니다. 다음 값이 CDB에 설정됩니다.
- 할당 길이 = 버퍼 크기, 시작 기능 번호=0000h, RT=00b
결과: 드라이브는 해당 미디어 유형에 대해 GET CONFIGURATION 명령을 올바르게 구현해야 합니다.
GET PERFORMANCE 명령
설명: 드라이브가 보고된 프로필에 대해 GET PERFORMANCE 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 다음 미디어 중 하나:
CD-R
CD-ROM
CD-RW
DVD+R
DVD+R 듀얼 레이어
DVD+RW
DVD-RW 제한된 덮어쓰기
DVD-RAM
DVD-R
DVD-R 듀얼 레이어 시퀀스
DVD-ROM
BD-R
BD-RE
BD-ROM
테스트 사례 단계:
GET CONFIGURATION 명령을 보내 REAL TIME STREAMING 기능을 가져옵니다. 쓰기 속도 성능 설명자 비트가 설정된 경우 응답을 확인합니다. 이것이 설정되지 않은 경우 드라이브는 쓰기 속도 설명자를 지원하지 않습니다. 쓰기 속도 설명자의 유효성을 검사하는 6~11단계를 건너뜁니다.
CDB에서 다음 값과 함께 GET PERFORMANCE 명령을 전송하여 명목 읽기 성능 설명자를 0으로 만듭니다.
유형 = 0
시작 LBA = 1
최대 설명자 = 0
데이터 형식 = 0x10
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
CDB에서 다음 값과 함께 GET PERFORMANCE 명령을 전송하여 하나의 명목 읽기 성능 설명자를 가져옵니다.
유형 = 0
시작 LBA = 1
최대 설명자 = 1
데이터 형식 = 0x10
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
CDB에서 다음 값과 함께 GET PERFORMANCE 명령을 보내 하나의 명목 쓰기 성능 설명자를 얻으세요.
유형 = 0
시작 LBA = 1
최대 설명자 = 1
데이터 형식 = 0x14
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
쓰기 속도 설명자 목록에 대한 데이터 길이를 가져오려면 CDB에서 다음 값과 함께 GET PERFORMANCE 명령을 보냅니다.
유형 = 3
시작 LBA = 1
최대 설명자 = 0
데이터 형식 = 0x14
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
쓰기 속도 설명자 목록을 가져오려면 CDB에서 다음 값과 함께 GET PERFORMANCE 명령을 보냅니다.
유형 = 3
시작 LBA = 1
최대 설명자 = 10
데이터 형식 = 0x14
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 임의 크기 버퍼가 임의 데이터로 채워진 상태에서 GET PERFORMANCE 명령을 보냅니다. CDB에서 다음 값으로 설정하여 명목 읽기 성능 설명자를 0으로 만듭니다.
유형 = 0
시작 LBA = 1
최대 설명자 = 0
데이터 형식 = 0x10
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
결과: 드라이브는 해당 미디어 유형에 대해 GET PERFORMANCE 명령을 올바르게 구현해야 합니다.
READ CAPACITY 명령
설명: 드라이브가 보고된 프로필에 대해 READ CAPACITY 명령을 지원하는지 유효성을 검사합니다.
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어입니다.
테스트 사례 단계:
READ CAPACITY 명령을 보냅니다.
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
블록 길이(바이트)가 2048이 아니면 테스트 사례에 실패합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 임의 크기의 버퍼가 임의 데이터로 채워진 상태에서 READ CAPACITY 명령을 보냅니다.
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
결과: 드라이브는 해당 미디어 유형에 대해 READ CAPACITY 명령을 올바르게 구현해야 합니다.
READ BUFFER CAPACITY 명령
설명: 드라이브가 보고된 프로필에 대해 READ BUFFER CAPACITY 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어입니다.
테스트 사례 단계:
GET CONFIGURATION 명령을 보내 REAL TIME STREAMING 기능을 가져옵니다. RBCB(Read Buffer Capacity Block) 비트가 설정된 경우 응답을 확인합니다. 이것이 설정되지 않은 경우 드라이브는 Read Buffer Capacity 명령을 지원하지 않습니다. 테스트 사례를 건너뜁니다.
블록 비트가 0으로 설정되고 할당 길이가 버퍼 용량 구조의 크기와 동일한 상태에서 READ BUFFER CAPACITY 명령을 보냅니다.
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
블록 비트를 1로 설정하고 2단계를 반복합니다.
명령이 실패하면 감지 키를 인쇄하고 명령을 실패합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 임의 크기 버퍼가 임의 데이터로 채워지고 블록 비트가 0으로 설정된 상태에서 READ BUFFER CAPACITY 명령을 보냅니다.
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
결과: 드라이브는 해당 미디어 유형에 대해 READ BUFFER CAPACITY 명령을 올바르게 구현해야 합니다.
READ DISC INFORMATION 명령
설명: 드라이브가 보고된 프로필에 대해 READ DISC INFORMATION 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 다음 미디어 중 하나:
DVD+R
DVD+RW
DVD-R
CD-R
CD-RW
테스트 사례 단계:
표준 디스크 정보 크기를 가져오려면 할당 길이가 2인 READ DISC INFORMATION 명령을 보냅니다.
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
응답에서 디스크 정보 길이를 가져옵니다. 길이가 표준 디스크 정보 블록 크기(34)보다 작으면 테스트 사례에 실패합니다.
할당 길이가 3단계의 데이터 길이에 2를 더한 것과 같은 READ DISC INFORMATION 명령을 보냅니다.
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 임의 크기 버퍼가 임의 데이터로 채워지고 할당 길이가 버퍼 크기로 설정된 상태에서 READ DISC INFORMATION 명령을 보냅니다.
결과: 드라이브는 해당 미디어 유형에 대해 READ DISC INFORMATION 명령을 올바르게 구현해야 합니다.
READ FORMAT CAPACITIES 명령
설명: 드라이브가 보고된 프로필에 대해 READ FORMAT CAPACITIES 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 다음 미디어 중 하나:
DVD+RW
DVD-RW 제한된 덮어쓰기
DVD-RAM
CD-RW
테스트 사례 단계:
할당 길이가 4(용량 목록 헤더)인 READ FORMAT CAPACITIES 명령을 보냅니다.
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
응답에서 용량 목록 길이 가져오기
용량 목록 길이 + 4(용량 목록 헤더의 크기)와 동일한 할당 길이를 사용하여 READ FORMAT CAPACITIES 명령을 보냅니다.
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
용량 목록 길이가 8의 배수인 경우 응답을 확인합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 임의 크기 버퍼가 임의 데이터로 채워지고 할당 길이가 버퍼 크기로 설정된 상태에서 READ FORMAT CAPACITIES 명령을 보냅니다.
결과: 드라이브는 해당 미디어 유형에 대해 READ FORMAT CAPACITIES 명령을 올바르게 구현해야 합니다.
READ TOC/PMA/ATIP 명령
설명: 드라이브가 보고된 프로필에 대해 READ TOC/PMA/ATIP 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 다음 미디어 중 하나:
CD-ROM
DVD-ROM
BD-ROM
테스트 사례 단계:
CDB에 다음 값과 함께 READ TOC/PMA/ATIP 명령을 보냅니다.
- 형식 = 0, MSF = 0, 트랙 세션 번호 = 1, 할당 길이 = 4
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 버퍼가 임의 데이터로 채워지고 할당 길이가 버퍼 크기로 설정된 상태에서 READ TOC/PMA/ATIP 명령을 보냅니다. 다음 값으로 CDB를 설정합니다.
- 형식 = 0, MSF = 0, 트랙 세션 번호 = 1, 할당 길이 = 4
결과: 드라이브는 해당 미디어 유형에 대해 READ TOC/PMA/ATIP 명령을 올바르게 구현해야 합니다.
SEND OPC INFORMATION 명령
설명: [이 콘텐츠는 아직 사용할 수 없습니다.]
적용 가능한 미디어: 다음 미디어 중 하나:
DVD-RW 제한된 덮어쓰기
DVD-R
CD-RW
CD-R
테스트 사례 단계:
DoOpc를 1로 설정하여 SEND OPC INFORMATION 명령을 보냅니다.
명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
[선택 사항] DoOpc가 1로 설정되고 데이터 방향 플래그가 "디바이스로"로 설정되고 임의 크기 버퍼가 임의 데이터로 채워진 상태에서 SEND OPC INFORMATION 명령을 보냅니다. 할당 길이는 버퍼의 크기로 설정됩니다.
결과: 드라이브는 해당 미디어 유형에 대해 SEND OPC INFORMATION 명령을 올바르게 구현해야 합니다.
SET CD SPEED 명령
설명: 드라이브가 보고된 프로필에 대해 SET CD SPEED 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
GET CONFIGURATION 명령을 보내 REAL TIME STREAMING 기능을 가져옵니다. SCS(Set CD Speed) 비트가 설정되어 있으면 응답을 확인합니다. 이것이 설정되지 않은 경우 드라이브는 SET CD SPEED 명령을 지원하지 않습니다. 테스트 사례를 건너뜁니다.
CDB에 다음 값과 함께 SET CD SPEED 명령을 보냅니다.
- RotationalControl = 0, ReadSpeed = 0xFFFF, WriteSpeed =(((4* 75 * 2352) + 500)/1000) 명령이 실패하면 감지 키를 인쇄하고 테스트 사례에 실패합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 임의의 데이터로 채워진 임의의 크기 버퍼와 함께 SET CD SPEED 명령을 보냅니다. CDB에서 다음 값을 설정합니다.
- RotationalControl = 0, ReadSpeed = 0xFFFF, WriteSpeed = (((4* 75 * 2352) + 500) / 1000)
결과: 드라이브는 해당 미디어 유형에 대해 SET CD SPEED 명령을 올바르게 구현해야 합니다.
READ10 명령
설명: 드라이브가 보고된 프로필에 대해 READ10 명령을 지원하는지 유효성을 검사합니다
적용 가능한 미디어: 다음 미디어 중 하나:
CD-ROM
DVD-ROM
테스트 사례 단계:
할당 길이가 READ TOC 응답 헤더(4바이트)의 크기와 동일한 READ TOC/PMA/ATIP 명령을 보냅니다.
할당 길이가 READ TOC 응답 헤더의 크기(4바이트) + 1단계의 응답 헤더의 데이터 길이와 같은 READ TOC/PMA/ATIP 명령을 보냅니다.
제어가 0x04로 설정된 경우 형식이 지정된 모든 읽기 TOC 설명자를 확인합니다.
발견되지 않으면 테스트 사례에 실패합니다
그렇지 않으면 형식이 지정된 Toc 트랙 설명자에서 트랙 시작 주소를 가져옵니다.
블록 크기를 가져오려면 LBA 필드를 0으로 설정하여 읽기 용량 명령을 보냅니다.
전송 길이를 0으로 설정하고 시작 LBA를 5단계에서 LBA로 설정하여 읽기 명령을 보냅니다.
읽을 블록 수 계산
읽기 용량 응답의 LBA가 5단계의 LBA보다 작으면 읽을 블록 수가 0으로 설정됩니다.
읽기 용량 응답의 LBA가 5단계의 LBA보다 크면 읽을 블록 수를 읽기 용량 응답의 LBA와 5단계의 LBA 간의 차이와 동일하게 설정합니다. 해당 값이 50보다 크면 읽을 블록 수를 50으로 설정합니다.
읽기 10 CDB의 시작 LBA를 5단계의 LBA로 설정합니다.
전송 길이를 1로 설정하여 read10 명령을 보냅니다.
10밀리초 동안 절전 모드
읽기 10 CDB에서 시작 LBA 증가
모든 블록 수를 읽을 때까지 12~14단계를 반복합니다.
[선택 사항] 데이터 방향 플래그가 "디바이스로"로 설정되고 임의의 데이터로 채워진 임의의 크기 버퍼와 함께 READ10 명령을 보냅니다. CDB에서 다음 값을 설정합니다.
- TransferLength = 1, 시작 LBA = 5단계에서 시작하는 LBA와 함께 8단계에서 LBA 수의 LBA 범위에 있는 임의의 LBA 값
결과: 드라이브는 해당 미디어 유형에 대해 READ10 명령을 올바르게 구현해야 합니다.
이벤트 알림
설명: 디바이스 이벤트 알림이 Windows PNP에 제대로 보고되는지 유효성을 검사합니다
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
드라이브의 STORAGE_ADAPTER_DESCRIPTOR 구조의 BusType 필드가 BusTypeSata로 설정된 경우 IOCTL_ATA_PASS_THROUGH를 패킷 디바이스 정보 식별 데이터 요청과 함께 보냅니다. 응답에서 단어 78의 비트 5(비동기 알림 기능이 지원됨)와 단어 79의 비트 5(비동기 알림 기능이 사용하도록 설정됨)가 모두 설정되었는지 확인합니다. 그렇지 않으면 테스트에 실패합니다.
운영 변경 이벤트에 등록합니다.
미디어가 있는지 확인합니다.
미디어가 있으면 미디어를 꺼냅니다.
MEDIA REMOVAL 이벤트를 기다립니다. 이벤트가 60초 제한 시간 내에 생성되지 않으면 테스트 사례에 실패합니다.
드라이브에 미디어를 넣습니다.
MEDIA ARRIVAL 이벤트를 기다립니다. 이벤트가 60초 제한 시간 내에 생성되지 않으면 테스트 사례에 실패합니다.
결과: 드라이브가 이벤트 알림을 올바르게 구현해야 합니다.
테스트 작성
설명: IMAPI 컨텍스트에서 데이터 콘텐츠에 대한 드라이브의 쓰기 기능의 유효성을 검사합니다 디바이스는 드라이브에서 보고한 다양한 쓰기 속도로 테스트됩니다. 테스트는 또한 디바이스의 다중 세션 기능이 삽입된 미디어에 적용 가능한지 유효성을 검사합니다.
적용 가능한 미디어: 다음 미디어 중 하나(드라이브 작업에 따라 다름):
순차적 쓰기:
CD-R
CD-RW
DVD+R
DVD-R
DVD-RAM
BD-R
BD-RE
제한된 덮어쓰기:
- DVD-RW
패킷 모드:
- DVD+RW
다중 세션:
CD-R
CD-RW
DVD-R
DVD+R
BD-R
테스트 사례 단계:
사용자에게 빈 미디어를 삽입하도록 요청합니다.
API IDiscFormat2Data::get_CurrentMediaStatus를 호출하여 미디어가 비어 있는지 확인합니다.
미디어가 비어 있지 않고 다음 다시 쓰기 가능한 미디어 유형 중 하나인 경우 최소 공백 옵션과 함께 공백 명령을 전송하여 미디어를 지웁니다.
CD-RW
DVD-RW 순차 녹화
DVD-RW 제한된 덮어쓰기
DVD+RW
DVD-RAM
BD-RE
미디어가 다시 쓰기 가능한 미디어가 아닌 경우 사용자에게 빈 미디어를 삽입하도록 요청합니다. 이를 3번 다시 시도하고, 그렇지 않으면 테스트 사례에 실패합니다.
미디어가 다시 쓰기 가능한 미디어가 아닌 경우 사용자에게 빈 미디어를 삽입하도록 요청합니다. 이를 3번 다시 시도하고, 그렇지 않으면 테스트 사례에 실패합니다.
API IDiscFormat2Data::get_SupportedWriteSpeedDescriptors를 호출하여 쓰기 속도 설명자 목록을 가져옵니다.
보고된 쓰기 속도의 순서를 임의로 지정
6단계의 쓰기 속도 중 하나로 API IDiscFormat2Data::SetWriteSpeed를 호출하여 쓰기 속도를 설정합니다.
미디어에서 사용 가능한 공간의 10% 범위로 임의의 데이터 크기를 만듭니다. 버퍼를 임의의 데이터로 채웁니다.
API IDiscFormat2Data::get_FreeSectorsOnMedia를 사용하여 디스크의 여유 블록 수를 가져옵니다.
API IDiscFormat2Data::get_NextWritableAddress를 사용하여 쓰기 가능한 다음 주소를 가져옵니다.
IDiscFormat2Data::Write를 사용하여 8단계의 데이터 버퍼를 씁니다.
드라이브가 자동 꺼내기-넣기 메커니즘을 지원하는 경우 미디어를 꺼내 트레이에 넣습니다.
미디어가 DVD-RW, DVD+RW, DVD-RAM, BD-RE가 아닌 경우:
API IDiscFormat2Data::get_FreeSectorsOnMedia를 사용하여 디스크의 여유 블록 수를 가져옵니다.
여유 섹터 수가 9단계의 값보다 8단계의 쓰기 데이터 크기만큼 작은지 확인합니다.
API IDiscFormat2Data::get_NextWritableAddress를 사용하여 쓰기 가능한 다음 주소를 가져옵니다.
다음 쓰기 가능 주소가 10단계의 다음 쓰기 가능 주소보다 8단계의 쓰기 데이터 크기만큼 큰지 확인합니다.
디스크에서 데이터를 읽고 11단계에서 미디어에 기록된 데이터와 일치하는지 비교합니다.
마지막 트랙 정보 가져오기
미디어가 DVD-RW가 아니면 Microsoft가 쓴 데이터의 크기보다 크거나 같은 경우 논리적 트랙 크기를 확인합니다.
논리 트랙 번호가 올바른지 확인합니다.
매개 변수 쓰기 모드 페이지를 가져옵니다.
매개 변수 쓰기 모드 페이지에서 고정 패킷으로 보고하는 경우 드라이브에서 보고한 트랙 정보가 패킷/증분 정보가 아닌지 확인합니다.
디스크 정보를 읽고 세션 수가 일치하는지 확인합니다.
미디어가 DVD-RW, DVD+RW 및 DVD-RAM이 아닌 경우 각 쓰기 속도에 대해 7~19단계를 반복합니다. 드라이브가 쓰기 속도를 하나만 반환한 경우 7~19단계를 한 번 더 반복하여 다중 세션 기능을 유효성 검사하기 위해 디스크에 세션을 하나 더 추가합니다.
결과: 드라이브는 IMAPI 컨텍스트에서 데이터를 구울 수 있어야 합니다.
오디오 미디어(오디오 트랙 쓰기)
설명: IMAPI 컨텍스트에서 오디오 콘텐츠에 대한 드라이브의 쓰기 기능의 유효성을 검사합니다
적용 가능한 미디어: 다음 미디어 중 하나:
CD-R
CD-RW
테스트 사례 단계:
미디어가 비어 있지 않고 CD-RW 미디어 유형인 경우 최소 공백 옵션과 함께 공백 명령을 보내 미디어를 지웁니다.
미디어가 다시 쓰기 가능한 미디어가 아닌 경우 사용자에게 빈 미디어를 삽입하도록 요청합니다. 이를 3번 다시 시도하고, 그렇지 않으면 테스트 사례에 실패합니다.
DiscFormat2TrackAtOnce::PrepareMedia를 호출하여 독점 액세스를 위해 미디어를 잠급니다.
API IDiscFormat2TrackAtOnce::get_SupportedWriteSpeeds를 호출하여 쓰기 속도 설명자 목록을 가져옵니다.
3에서 10 사이의 임의의 오디오 트랙 수를 선택합니다.
보고된 쓰기 속도의 순서를 임의로 지정합니다.
1단계에서 API IDiscFormat2TrackAtOnce::SetWriteSpeed를 호출하여 쓰기 속도를 설정합니다.
API IDiscFormat2Data::get_FreeSectorsOnMedia를 사용하여 디스크의 여유 블록 수를 가져옵니다.
1분 오디오 데이터부터 10분 오디오 데이터까지 임의 크기의 오디오 데이터를 만듭니다. 데이터 크기는 2352의 배수여야 합니다.
오디오 데이터 스트림을 IDiscFormat2TrackAtOnce::AddAudioTrack에 추가합니다.
마지막 트랙 정보 가져오기
논리 트랙 크기가 Microsoft가 작성한 오디오 트랙의 크기보다 크거나 같은지 확인합니다.
논리적 트랙 번호가 올바른지 확인합니다.
IDiscFormat2TrackAtOnce::FreeSectorsOnMedia를 호출하여 미디어의 여유 섹터 수를 가져옵니다.
14단계의 여유 섹터 수가 미디어에 기록된 오디오 트랙의 크기만큼 8단계의 값보다 작은지 확인합니다.
5단계의 오디오 트랙 수에 대해 5~15단계를 반복합니다.
매개 변수 쓰기 모드 페이지 가져오기
매개 변수 쓰기 모드 페이지에서 고정 패킷으로 보고하는 경우 드라이브에서 보고한 추적 정보가 패킷/증분 정보가 아닌지 확인합니다.
각 쓰기 속도에 대해 1~18단계를 반복합니다.
드라이브가 자동 꺼내기-넣기 메커니즘을 지원하는 경우 미디어를 꺼내 트레이에 넣습니다.
결과: 드라이브는 IMAPI 컨텍스트에서 오디오 미디어를 구울 수 있어야 합니다.
_blank
설명: IMAPI 컨텍스트에서 드라이브의 형식/공백 기능의 유효성을 검사합니다
적용 가능한 미디어: 다음 미디어 중 하나:
CD-RW
DVD+RW
DVD-RW 제한된 덮어쓰기
BD-RE
테스트 사례 단계:
API IDiscFormat2Data::CurrentPhysicalMediaType을 호출하여 미디어가 다음 읽기 쓰기 미디어 유형 중 하나인지 확인합니다.
CD-RW
DVD-RW
DVD+RW
미디어가 읽기 쓰기 미디어 유형이 아닌 경우 테스트 사례를 건너뜁니다.
API IDiscFormat2Erase::MediaPhysicallyBlank를 호출하여 미디어가 빈 미디어인지 확인합니다.
미디어가 비어 있는 경우 7단계로 이동합니다.
25MB 임의 데이터 스트림을 만듭니다.
API IDiscFormat2Data::Write를 사용하여 데이터 스트림을 디스크에 씁니다.
IDiscFormat2Data::get_CurrentMediaStatus API를 호출하여 드라이브가 미디어를 비어 있지 않은 미디어로 보고하는지 확인합니다.
드라이브가 여전히 미디어를 공백으로 보고하면 테스트 사례에 실패합니다.
지우기 이벤트 처리기 DDiscFormat2EraseEvents::Update를 구현합니다.
API IDiscFormat2Erase::put_FullErase를 호출하고 지우기 옵션을 false로 설정하여 공백을 최소화합니다.
IDiscFormat2Erase::EraseMedia API를 사용하여 빈 명령을 보냅니다.
API IDiscFormat2Data::get_CurrentMediaStatus를 호출하여 미디어가 비어 있는지 확인합니다.
디스크 정보를 읽고 다음을 확인합니다.
보고된 세션 수는 1입니다.
마지막 세션의 첫 번째 트랙은 1입니다.
마지막 세션의 마지막 트랙은 1입니다.
API IDiscFormat2Erase::put_FullErase를 호출하고 지우기 옵션을 전체 공백으로 설정합니다. 9~14단계를 반복합니다.
결과: 드라이브는 IMAPI 컨텍스트에서 미디어를 포맷할 수 있어야 합니다.
듀얼 레이어 미디어 쓰기
설명: IMAPI 컨텍스트에서 이중 레이어 미디어의 쓰기 기능의 유효성을 검사합니다 디바이스는 드라이브에서 보고한 다양한 쓰기 속도로 테스트됩니다.
적용 가능한 미디어: 다음 미디어 중 하나:
DVD+R DL
DVD-R DL
테스트 사례 단계:
사용자에게 빈 미디어를 삽입하도록 요청합니다.
API IDiscFormat2Data::get_CurrentMediaStatus를 호출하여 미디어가 비어 있는지 확인합니다.
미디어가 다시 쓰기 가능한 미디어가 아닌 경우 사용자에게 빈 미디어를 삽입하도록 요청합니다. 이를 3번 다시 시도하고, 그렇지 않으면 테스트 사례에 실패합니다.
API IDiscFormat2Data:: get_SupportedWriteSpeedDescriptors를 호출하여 쓰기 속도 설명자 목록을 가져옵니다.
보고된 쓰기 속도의 순서를 임의로 지정
5단계의 쓰기 속도 중 하나로 API IDiscFormat2Data::SetWriteSpeed를 호출하여 쓰기 속도를 설정합니다.
미디어에서 사용 가능한 공간의 최대 50%까지 임의 크기의 임의 데이터 스트림을 만듭니다. 버퍼를 임의의 데이터로 채웁니다.
IDiscFormat2Data:: Write를 사용하여 7단계의 데이터 버퍼를 씁니다.
드라이브가 자동 꺼내기-넣기 메커니즘을 지원하는 경우 미디어를 꺼내 트레이에 넣습니다.
디스크에서 데이터를 읽고 9단계에서 미디어에 기록된 데이터와 일치하는지 비교합니다.
마지막 트랙 정보를 가져옵니다.
논리 트랙 크기가 Microsoft가 작성한 데이터의 크기보다 크거나 같은지 확인합니다.
논리적 트랙 번호가 올바른지 확인합니다.
매개 변수 쓰기 모드 페이지를 가져옵니다.
매개 변수 쓰기 모드 페이지에서 고정 패킷으로 보고하는 경우 드라이브에서 보고한 트랙 정보가 패킷/증분 정보가 아닌지 확인합니다.
디스크 정보를 읽고 세션 수가 일치하는지 확인합니다.
미디어에서 사용 가능한 공간의 최대 100%까지 임의 크기의 임의 데이터 스트림을 사용하여 8~16단계를 반복합니다.
경고
이 마지막 단계는 드라이브가 이중 계층에 데이터를 제대로 쓸 수 있는지 테스트하는 것입니다.
결과: 드라이브는 IMAPI 컨텍스트에서 이중 레이어 미디어의 두 레이어 모두에 데이터를 구울 수 있어야 합니다.
읽기 전용 드라이브
설명: 열린(추가 가능) 디스크 및 닫힌(완결된) 디스크에서 읽기 전용 드라이브의 읽기 기능을 테스트합니다.
경고
이 테스트 사례에는 해당 테스트 프로필에 대한 테스트 데이터 디스크를 만들기 위한 보조 기록기 드라이브가 필요합니다.
적용 가능한 미디어: 다음 미디어 중 하나:
CD-ROM
DVD-ROM
BD-ROM
테스트 사례 단계:
기록기 드라이브 트레이를 꺼냅니다.
테스트 프로필이
CD-ROM인 경우 사용자에게 기록기 드라이브에 CD-R/CD-RW를 삽입하도록 요청합니다.
DVD-ROM인 경우 사용자에게 기록기 드라이브에 DVD+R/DVD-R/DVD+RW/DVD-RAM을 삽입하도록 요청합니다.
BD-ROM인 경우 사용자에게 기록기 드라이브에 BD-R/BD-RE를 삽입하도록 요청합니다.
기록기 드라이브 트레이를 넣습니다.
API IDiscFormat2Data:: get_SupportedWriteSpeedDescriptors를 호출하여 쓰기 속도 설명자 목록을 가져옵니다.
미디어에서 사용 가능한 공간의 최대 10%까지 임의 크기의 임의 데이터 스트림을 만듭니다. 버퍼를 임의의 데이터로 채웁니다.
4단계의 첫 번째 쓰기 속도 설명자 값으로 API IDiscFormat2Data::SetWriteSpeed를 호출하여 쓰기 속도를 설정합니다.
IDiscFormat2Data::Write를 사용하여 5단계의 데이터 버퍼를 기록기 드라이브의 미디어에 씁니다.
자동 꺼내기 메커니즘을 지원하는 경우 기록기 드라이브 트레이를 꺼냅니다. 그렇지 않으면 사용자에게 꺼내기 단추를 누르도록 요청합니다.
자동 꺼내기 메커니즘을 지원하는 경우 테스트 드라이브 트레이를 꺼냅니다. 그렇지 않으면 사용자에게 꺼내기 단추를 누르도록 요청합니다.
기록기 드라이브에서 미디어를 제거하고 테스트 드라이브에 넣어 사용을 요청합니다.
자동 넣기(트레이 로드) 메커니즘을 지원하는 경우 기록기 드라이브 트레이를 넣습니다. 그렇지 않으면 사용자에게 트레이를 드라이브에 삽입하도록 요청합니다.
자동 넣기(트레이 로드) 메커니즘을 지원하는 경우 테스트 드라이브 트레이를 넣습니다. 그렇지 않으면 사용자에게 트레이를 드라이브에 삽입하도록 요청합니다.
테스트 드라이브 디스크에서 데이터를 읽고 7단계에서 미디어에 기록된 데이터와 일치하는지 비교합니다.
IDiscFormat2Data::ForceMediaToBeClosed를 true로 설정하고 1~13단계를 반복하여 최종 디스크에서 테스트 드라이브의 유효성을 검사합니다.
결과: 드라이브는 닫힌 미디어와 열린 미디어를 모두 읽을 수 있어야 합니다.
드라이브 일련 번호
설명: 테스트 드라이브에서 반환된 드라이브 일련 번호가 MMC/Mt. Fuji 사양 표준을 준수함을 명시합니다.
경고
이 테스트 사례에서는 두 드라이브가 고유한 일련 번호를 반환하는지 유효성 검사하기 위해 두 개의 동일한 드라이브가 필요합니다. 하나의 기본 테스트 디바이스와 다른 하나는 보조 테스트 드라이브입니다.
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
할당 길이가 05h인 기본 테스트 디바이스에 INQUIRY 명령을 보냅니다.
명령이 성공하면 응답 헤더에서 추가 길이 값을 가져옵니다.
할당 길이가 2단계에서 추가된 길이보다 5바이트 더 길게 설정된 기본 디바이스로 INQUIRY 명령을 다시 보냅니다.
명령이 성공하면 공급업체 식별, 제품 식별 및 제품 수정 버전 수준을 가져옵니다.
보조 드라이브에 대해 1~4단계를 반복하고 공급업체 식별, 제품 식별 및 제품 수정 버전 수준을 얻습니다.
4단계와 5단계의 공급업체 식별, 제품 식별 및 제품 수정 버전 수준 값을 비교합니다. 일치하지 않으면 테스트 사례에 실패합니다.
경고
이는 두 테스트 드라이브가 동일한지 확인하기 위한 것입니다.
GET CONFIGURATION 명령을 기본 테스트 드라이브로 보내 할당 길이가 LOGICAL UNIT SERIAL NUMBER 기능 설명자의 크기와 같은 LOGICAL UNIT SERIAL NUMBER 기능을 가져옵니다.
기능 코드가 LOGICAL UNIT SERIAL NUMBER 기능 코드와 일치하는지 응답을 확인합니다. 추가 길이를 가져옵니다.
GET CONFIGURATION 명령을 기본 테스트 드라이브에 전송하여 할당 길이가 LOGICAL UNIT SERIAL NUMBER 기능 설명자의 크기와 8단계에서 보고된 필수 추가 길이와 동일한 LOGICAL UNIT SERIAL NUMBER 기능을 가져옵니다.
응답에서 다음을 확인합니다.
기능 코드는 LOGICAL UNIT SERIAL NUMBER 기능 코드와 일치합니다.
보고된 일련 번호 데이터는 ASCII 형식입니다.
데이터가 패딩됩니다.
패딩 후 데이터가 없습니다.
보조 테스트 디바이스에 대해 7~9단계를 반복하고 드라이브 일련 번호를 가져옵니다.
10단계와 11단계의 드라이브 일련 번호를 비교합니다. 드라이브는 고유한 일련 번호를 반환해야 합니다. 두 일련 번호가 같으면 테스트 사례에 실패합니다.
결과: 드라이브는 고유한 일련 번호를 반환해야 하며 해당 번호는 MMC/Mt. Fuji 표준을 준수해야 합니다.
실시간 스트리밍
설명: cdrom.sys 드라이버 컨텍스트에서 데이터 콘텐츠에 대한 드라이브의 실시간 스트리밍 기능의 유효성을 검사합니다 디바이스는 드라이브에서 보고한 다양한 읽기 및 쓰기 속도로 테스트됩니다.
적용 가능한 미디어: 디바이스에서 지원하는 모든 미디어
테스트 사례 단계:
사용자에게 미디어를 삽입하도록 요청합니다.
미디어가 쓰기 불가능하거나 다시 쓰기 불가능하면 13단계의 읽기 테스트를 진행합니다.
API IDiscFormat2Data::get_CurrentMediaStatus를 호출하여 미디어가 비어 있는지 확인합니다.
미디어가 비어 있지 않고 다음 다시 쓰기 가능한 미디어 유형 중 하나인 경우 최소 공백 옵션과 함께 공백 명령을 전송하여 미디어를 지웁니다.
CD-RW
DVD-RW 순차 녹화
DVD-RW 제한된 덮어쓰기
DVD+RW
DVD-RAM
BD-RE
미디어가 다시 쓰기 가능한 미디어가 아닌 경우 사용자에게 빈 미디어를 삽입하도록 요청합니다. 이를 3번 다시 시도하고, 그렇지 않으면 테스트 사례에 실패합니다.
REAL TIME STREAMING 기능에 대한 요청과 함께 GET CONFIGURATION 명령을 보냅니다. 성공하지 못하거나 현재 비트가 설정되지 않은 경우 테스트에 실패합니다.
REAL TIME STREAMING 기능 응답의 SW(스트림 쓰기) 비트 또는 WSPD(쓰기 속도 성능 설명자) 비트가 설정되지 않은 경우 테스트에 실패합니다.
쓰기 속도 설명자와 빌드 및 지원되는 쓰기 속도 배열에 대한 요청과 함께 GET PERFORMANCE 명령을 보냅니다. 명령이 성공하지 못하면 테스트에 실패합니다.
쓰기 속도 배열을 섞습니다.
여유 미디어 크기가 전체 용량의 10% 이상인 경우 다음 쓰기 속도를 위해 IOCTL_CDROM_SET_SPEED 및 CDROM_SET_STREAMING 구조가 제공되는 DeviceIoControl을 호출합니다. 전체 용량의 10%까지 임의의 데이터를 쓰고 속도를 측정합니다(측정 절차 설명은 이 문서의 해당 섹션 참조).
가능한 한 오랫동안 10단계를 반복합니다. 모든 쓰기 속도가 조사되면 속도 배열을 섞고 다음 쓰기 속도를 처음으로 설정합니다.
CLOSE TRACK SESSION 명령을 보내 미디어를 마무리합니다.
REAL TIME STREAMING 기능 응답의 WSPD(쓰기 속도 성능 설명자) 비트가 설정된 경우 쓰기 속도 설명자에 대한 요청과 함께 GET PERFORMANCE 명령을 보내고 지원되는 읽기 속도의 배열을 빌드합니다. 그렇지 않으면 허용 오차 비트가 설정된 성능 데이터에 대한 요청과 함께 GET PERFORMANCE 명령을 보냅니다. 10b(공칭)로 변경하고 읽기 속도의 경우 응답에서 성능 시작 및 성능 종료 필드의 가장 낮은 값을 선택합니다. 성공하지 못한 명령 중 하나라도 테스트에 실패하면.
읽기 속도 배열을 섞습니다.
읽기 길이를 미디어의 첫 번째 트랙 크기로 설정합니다.
각 읽기 속도에 대해 다음 읽기 속도에 제공된 IOCTL_CDROM_SET_SPEED 및 CDROM_SET_STREAMING 구조를 사용하여 DeviceIoControl을 호출합니다. 미디어에 기록된 전체 데이터를 미디어 용량의 10%(미디어의 데이터가 50MB 미만인 경우 최소 5MB) 단위로 읽고 각 청크의 속도를 측정합니다. 청크의 실제 속도가 청크에 대해 요청된 속도보다 낮으면 테스트가 실패한 것으로 표시됩니다.
결과: 드라이브가 실시간 스트리밍 모드에서 작동할 수 있어야 합니다.
쓰기 속도 측정
테스트는 디바이스를 쿼리하고 테스트 미디어에 대해 지원되는 쓰기 속도를 가져옵니다. 그런 다음 보고된 모든 쓰기 속도에 대해 쓰기 시나리오의 유효성을 검사하려고 시도합니다. 테스트에서는 각 쓰기 시나리오에 대해 계산된 쓰기 속도가 드라이브에 설정된 쓰기 속도와 비슷할 것으로 예상합니다. 테스트는 측정된 쓰기 속도에 대해 10% 허용 오차를 허용합니다. 테스트는 아래와 같이 쓰기 속도의 유효성을 검사합니다.
테스트는 미디어에 데이터를 쓰고 기록되는 데이터의 양을 모니터링합니다. 초기 10% 쓰기 데이터의 마지막 10% 쓰기 데이터에 대한 타이밍은 제외됩니다. 중간 80% 데이터에 대해서만 타이밍을 측정하고 해당 데이터에 대한 속도를 계산하고 해당 값에 10% 허용 오차를 추가합니다. 따라서 'x'가 중간 80% 데이터에 대해 계산된 속도라면 최종 계산된 속도는 1.1x입니다. 테스트에서는 이 값이 쓰기를 시작하기 전에 드라이브에 설정된 속도보다 크거나 같을 것으로 예상합니다.
테스트에서는 드라이브가 쓰기를 준비할 수 있도록 데이터 쓰기 타이밍의 초기 10%를 제외합니다. 드라이브가 미디어에 기록된 데이터에 대해 적절한 정리를 수행할 수 있도록 최종 10% 데이터 타이밍은 제외됩니다.
오디오 미디어 끊김 없는 원시 녹음
설명: IMAPI 컨텍스트에서 끊김 없는 원시 오디오 콘텐츠에 대한 드라이브의 쓰기 기능의 유효성을 검사합니다
적용 가능한 미디어: 다음 미디어 중 하나:
CD-R
CD-RW
테스트 사례 단계:
미디어가 삽입된 드라이브가 간격 없는 원시 녹음/녹화를 지원하는지 확인합니다. 지원되지 않으면 테스트가 실패합니다.
테스트 드라이브에서 지원하는 섹터 유형을 확인합니다.
테스트 드라이브에서 지원하는 각 섹터 유형에 대해 4~9단계를 완료합니다.
원시 이미지를 만듭니다.
올바른 섹터 유형을 설정하고 원시 이미지에 대한 결과 스트림을 만듭니다.
원시 이미지에 간격이 없는지 확인합니다.
쓰기 속도를 임의로 선택하여 굽기 속도로 설정합니다. 요청한 섹터 유형을 원시 이미지에 대해 설정된 섹터 유형으로 설정합니다. 원시 이미지의 스트림을 미디어에 쓰고 진행 상황을 지켜보세요. 굽기 속도를 계산하고 처리량을 인쇄합니다.
각각의 논리적 트랙 정보를 확인하여 쓰기 성공 여부를 판단합니다. 트랙이 오디오 트랙인지, 트랙 크기가 올바른지, 마지막 논리적 트랙 번호와 시작 주소의 크기가 디스크의 리드 아웃 시작 주소와 같은지 확인합니다. 조건 중 하나라도 false를 반환하면 테스트가 실패합니다. 그렇지 않으면 통과합니다.
미디어에 대한 원시 읽기를 수행합니다. 각 트랙에 대해 트랙이 오디오인지 확인합니다. 그렇지 않은 경우 녹음에서 트랙이 오디오 트랙임을 이미 확인했기 때문에 테스트에 실패합니다. 트랙의 시작 오프셋과 끝 오프셋을 계산합니다. 트랙의 시작 오프셋에서 시작하여 트랙의 끝 오프셋에서 끝나는 트랙에 대한 판독을 수행합니다. 읽기 과정에서 오류가 발생하면 테스트에 실패합니다.
결과: 드라이브는 IMAPI 컨텍스트에서 끊김 없는 원시 오디오 이미지를 구울 수 있어야 합니다.
명령 사용법
명령 | Description |
---|---|
OpticalLogoTest.exe /drive [StorageDriveLetter]:\ /log [log] [AdditionalParams] /profile [profile] /RunTestCaseTypes [RunTestCaseTypes] |
테스트를 실행합니다. |
참고
이 테스트 이진에 대한 명령줄 도움말을 보려면 /h를 입력합니다.
명령 구문
명령 옵션 | Description |
---|---|
드라이브 |
광학 디바이스 드라이브 문자를 테스트합니다. 예: /drive e:\\ |
adapter(어댑터) |
경로(어댑터 테스트에 사용됨)입니다. 예: /adapter \"PCI\\VEN_8086&DEV_27DF&SUBSYS_01AD1028&REV_01\\3&172E68DD&0&F9\" |
PrimaryTestDrive |
광학 디바이스 드라이브 문자를 테스트합니다. 예: /PrimaryTestDrive e:\\ |
SecondaryTestDrive |
보조 광학 테스트 디바이스 드라이브 문자입니다. 예: /Secondary Test Drive f:\\ |
WriterDrive |
읽기 전용 드라이브를 테스트하는 데 사용해야 하는 작성기의 드라이브 문자입니다. 예: /WriterDrive f:\\ |
PrimaryDriveTray |
기본 광학 디바이스 트레이 기능입니다. 예: /PrimaryDriveTray SupportsEjectInject |
SecondaryDriveTray |
보조 광학 디바이스 트레이 기능입니다. 예: /SecondaryDriveTray SupportsEjectInject |
WriterDriveTray |
기록기 드라이브 트레이 기능입니다. 예: /WriterDriveTray SupportsEjectInject |
profile |
테스트 사례 지정 프로필을 실행합니다. 프로필 ID는 공백 없이 10진수와 쉼표로 구분되어야 합니다. 예: /profile 9,10,16 |
seed |
임의 테스트 데이터를 생성하기 위한 시드 값입니다. 예: /seed 1000 |
RunTestCaseTypes |
테스트 사례의 범주만 실행합니다. 예: /RunTestCaseTypes device |
RunTestCase |
이 테스트 사례만 실행합니다. 예: /RunTestCase Inquiry |
Automation |
로봇을 사용하여 미디어를 변경하는 자동화 모드에서 실행합니다. 예: /Automation |
AutomationConfigFile |
미디어의 bin 위치를 지정하는 데 사용되는 구성 파일입니다. 예: /AutomationConfigFile OpticalLogoTest.exe.config |
보정 |
미디어를 변경하는 데 사용되는 로봇을 보정합니다. 예: /Calibrate |
로고 |
테스트할 인증 요구 사항의 수준입니다. 예: /logo basic 또는 /logo premium |
ReuseMedia |
테스트를 위해 비어 있지 않은 미디어를 재사용합니다. 테스트는 해당 미디어에 대해 멀티세션이 지원되는 경우 미디어가 비어 있을 것으로 예상하지 않습니다. 이 옵션은 테스트 전용입니다. 인증이 허용되지 않습니다. 예: /ReuseMedia |
SkipFullBlank |
전체 공백 시나리오를 건너뛰고 최소 공백만 테스트합니다. 예: /SkipFullBlank |
SkipManualTestCases |
수동 상호 작용이 필요한 테스트 사례를 건너뜁니다. 예: /SkipManualTestCases |
RunDataDirectionFlagScenario |
잘못된 데이터 방향 플래그로 명령의 유효성을 검사합니다. Example: /RunDataDirectionFlagScenario |
디버거 |
프로그램을 추가로 실행하기 전에 디버거를 연결할 수 있는 시간을 제공하는 디버거를 연결하라는 메시지를 표시합니다. 예: /Debugger |
자세한 정도 |
로깅의 세부 정보 표시. 예: /Verbosity Verbose |
log |
로그 파일 이름 기본값: OpticalLogoTest.wtl 예: /log mytestlog.wtl |
EnableImapiv2Trace |
IMAPIv2 소프트웨어 추적을 사용하도록 설정합니다. 예: /EnableImapiv2Trace |
Imapiv2TraceGuidsFile |
추적을 기록해야 하는 구성 요소 GUID의 전체 목록이 있는 IMAPIv2 추적 GUID 파일입니다. 기본값: imapiv2-guids.txt 예: /IMAPIv2TraceGuidsFile imapiv2-guids.txt |
Imapiv2TraceLogFile |
IMAPIv2 출력 추적 로그 파일입니다. 기본값: imapiv2-tracelog.etl 예: /IMAPIv2TraceLogFile imapiv2-tracelog.etl |
cmdPerfTraceAnalysis |
명령 성능 분석을 실행합니다. Example: /cmdPerfTraceAnalysis Always |
cmdPerfTraceGuidsFile |
성능 데이터를 추적하는 구성 요소의 GUID가 있는 성능 추적 GUID 파일입니다 기본값: perf-guids.txt 예: /cmdPerfTraceGuidsFile perf-guids.txt |
cmdPerfTraceLogFile |
성능 출력 추적 로그 파일입니다 기본값: perf-tracelog.etl 예: /cmdPerfTraceLogFile perf-tracelog.etl |
cmdPerfTraceTmfFile |
성능 추적 형식 설명 파일입니다. 예: /cmdPerfTraceTmfFile perf-tracelog.tmf |
파일 목록
파일 | 위치 |
---|---|
ataportlogotrace.tmf |
<[testbinroot]>\nttest\driverstest\storage\optical\setup\tracing\ |
autoloader.dll |
<[testbinroot]>\nttest\driverstest\storage\optical\autoloader\ |
DataPacket.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
DeviceTestCases.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
DiscManagerLib.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
microsoft.storage.imapi.dll |
<[testbinroot]>\nttest\driverstest\storage\interop\imapi\ |
ModularTestCase.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
OpticalLogoTest.exe |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
OpticalTestHarness.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
OpticalTestLib.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
ProfileTestCases.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
ScenarioTestCases.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
ScsiLib.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
storageinteroputil.dll |
<[testbinroot]>\nttest\driverstest\storage\interop\utils\ |
tracefmt.exe |
<[osbinroot]>\idw\ |
storagedevices.dll |
<[testbinroot]>\nttest\driverstest\storage\wdk\ |
TraceLib.dll |
<[osbinroot]>\nttest\driverstest\storage\wdk\optical\test\ |
tracelog.exe |
<[osbinroot]>\idw\ |
매개 변수
매개 변수 이름 | 매개 변수 설명 |
---|---|
StorageDriveLetter | 테스트 디바이스 드라이브 문자입니다. |
profile | |
LLU_NetAccessOnly | 테스트 파일 공유에 액세스하기 위한 사용자 계정입니다. |
LLU_LclAdminUsr | 테스트를 실행하기 위한 사용자 계정입니다. |
WDKDeviceID | 테스트할 디바이스의 인스턴스 경로입니다. |
log | |
RunTestCaseTypes | |
AdditionalParams |