KSEVENT_TUNER_INITIATE_SCAN
KSEVENT_TUNER_INITIATE_SCAN 이벤트는 드라이버의 연결된 튜닝 디바이스가 스캔 작업을 완료할 때 드라이버가 스캔 작업을 시작하고 사용자 모드 클라이언트에 알릴 것을 요청합니다.
사용 요약 테이블
가져오기 | 설정 | 대상 | 이벤트 설명자 유형 | 이벤트 값 형식 |
---|---|---|---|---|
아니요 | 예 | Pin | KSEVENT_TUNER_INITIATE_SCAN_S | KSEVENTDATA |
설명
모든 검사 요청은 비 차단이어야 합니다. 즉, 드라이버는 컨트롤을 반환하기 전에 스캔 작업이 완료되기를 기다리지 않아야 합니다. 실제로 드라이버는 별도의 스레드를 사용하여 검사 작업을 수행해야 합니다.
KSEVENT_TUNER_INITIATE_SCAN 이벤트는 KSPROPERTY_TUNER_FREQUENCY 독립적이지만 KSEVENT_TUNER_INITIATE_SCAN KSPROPERTY_TUNER_FREQUENCY_S 구조체의 TuningFlags 멤버에 있는 KS_TUNER_TUNING_EXACT 튜닝 플래그 에 해당합니다. 즉, 검사는 항상 다음 채널의 정확한 빈도를 확인하려고 시도합니다. 또한 튜닝 디바이스가 따르는 튜닝 전략은 드라이버(KSPROPERTY_TUNER_MODE_CAPS_S 구조의전략 멤버에서 KS_TUNER_STRATEGY_DRIVER_TUNES)에 의해 제어됩니다. 이러한 고정 플래그 및 전략은 KSPROPERTY_TUNER_FREQUENCY 제어하는 데 다른 플래그와 전략을 사용하는 경우에도 항상 따릅니다.
즉, KSTUNER_TUNING_FLAGS 및 KSTUNER_STRATEGY 값은 KSEVENT_TUNER_INITIATE_SCAN 동작에 영향을 미치지 않습니다.
완료 및 상태
검사 상태 속성 KSPROPERTY_TUNER_SCAN_STATUS 신호 잠금의 현재 빈도 및 상태 대한 정보를 제공합니다. 애플리케이션은 KSPROPERTY_TUNER_SCAN_STATUS 속성에서 잠금 상태 쿼리합니다. 또한 애플리케이션은 자동 신호 표준 검색에 대한 정보를 KSPROPERTY_TUNER_STANDARD_MODE 속성을 쿼리합니다. 요청된 범위에서 신호를 찾을 수 없는 경우 KSPROPERTY_TUNER_SCAN_STATUS 속성은 KSPROPERTY_TUNER_SCAN_STATUS_S 구조체의 LockStatus 멤버에 Tuner_LockType_None 값을 반환합니다. 튜닝 디바이스가 신호에서 튜너 표준을 자동으로 감지할 수 있고 대체 표준의 신호가 발견되면 튜닝 디바이스 자체가 KSPROPERTY_TUNER_STANDARD 속성에 대한 모든 요청을 처리할 수 있습니다. 튜닝 디바이스는 PLL(단계적 잠금 루프) 잠금을 초과하여 진행할 수 없으며 표준을 알 수 없음을 지정할 수 있습니다. 또는 튜닝 디바이스가 자동으로 다른 신호 표준에 맞게 조정될 수 있습니다. 또한 튜닝 디바이스는 해당 신호 표준에 대한 전체 잠금을 획득하고 대체 표준을 결정할 수도 있습니다. 이러한 상황은 주파수 스펙트럼에 여러 신호 표준이 있을 때 발생할 수 있습니다.
경계 조건
드라이버가 채널의 중심 주파수가 애플리케이션이 제공하는 범위를 벗어나는 것을 발견하면 드라이버는 해당 신호를 무시하고 다음 신호로 이동해야 합니다. 드라이버는 제공된 범위 내에서 가능한 최상의 근사치를 반환해서는 안됩니다. 애플리케이션이 채널 목록을 컴파일하려고 할 때 중복 채널 계산을 방지하려면 드라이버가 다음 신호로 이동해야 합니다.
같은 이유로 애플리케이션은 하드웨어가 디코딩할 수 없다는 신호가 발생할 때 특히 채널이 두 배로 계산되지 않도록 쿼리 범위를 예상 채널 대역폭의 절반(아날로그 및 디지털 TV의 경우 약 6/2 = 3MHz)으로 이동해야 합니다. 이 경우 드라이버는 특정 채널을 두 번 계산하는 것을 피하는 데 어려움이 있습니다.
다중 표준 사양
새 채널 또는 신호를 찾을 때마다 검사 작업이 완료되어야 합니다. 그런 다음 드라이버는 KSPROPERTY_TUNER_SCAN_STATUS 속성을 통해 스캔 상태 반환합니다. 드라이버가 새로 찾은 채널이 이전에 적용된 표준과 일치하지 않는다고 판단하더라도 새 채널을 찾을 때마다 검사가 완료되어야 합니다. 애플리케이션은 새 채널 정보를 처리해야 하며 동일한 신호 표준이 있는 다른 채널을 찾으려면 스캔 요청을 다시 제출해야 합니다.