KSEVENT_TUNER_INITIATE_SCAN
Das KSEVENT_TUNER_INITIATE_SCAN-Ereignis fordert an, dass der Treiber einen Scanvorgang initiiert und einen Client im Benutzermodus benachrichtigt, wenn das zugehörige Optimierungsgerät des Treibers den Scanvorgang abgeschlossen hat.
Nutzungszusammenfassungstabelle
Herunterladen | Set | Ziel | Ereignisdeskriptortyp | Ereigniswerttyp |
---|---|---|---|---|
Nein | Ja | Pin | KSEVENT_TUNER_INITIATE_SCAN_S | KSEVENTDATA |
Bemerkungen
Jede Scananforderung sollte nicht blockierend sein. Das heißt, der Treiber sollte nicht warten, bis der Scanvorgang abgeschlossen ist, bevor er die Steuerung zurückgibt. Tatsächlich sollte der Treiber einen separaten Thread verwenden, um den Scanvorgang auszuführen.
Während das KSEVENT_TUNER_INITIATE_SCAN-Ereignis unabhängig von KSPROPERTY_TUNER_FREQUENCY ist, entspricht KSEVENT_TUNER_INITIATE_SCAN dem KS_TUNER_TUNING_EXACT Optimierungsflag im TuningFlags-Member der KSPROPERTY_TUNER_FREQUENCY_S-Struktur . Dies bedeutet, dass der Scan immer versucht, die genaue Häufigkeit des nächsten Kanals zu bestimmen. Außerdem wird die Optimierungsstrategie, die das Optimierungsgerät verfolgt, vom Treiber gesteuert (KS_TUNER_STRATEGY_DRIVER_TUNES aus dem Strategieelement der KSPROPERTY_TUNER_MODE_CAPS_S-Struktur ). Diese festen Flags und Strategien werden immer befolgt, auch wenn ein anderes Flag und eine andere Strategie verwendet werden, um KSPROPERTY_TUNER_FREQUENCY zu steuern.
Anders ausgedrückt: KSTUNER_TUNING_FLAGS und KSTUNER_STRATEGY Werte wirken sich nicht auf das Verhalten von KSEVENT_TUNER_INITIATE_SCAN aus.
Abschluss und Status
Die Status-Eigenschaft KSPROPERTY_TUNER_SCAN_STATUS enthält Informationen zur aktuellen Häufigkeit und zur status der Signalsperre. Die Anwendung fragt die Sperre status von der eigenschaft KSPROPERTY_TUNER_SCAN_STATUS ab. Die Anwendung fragt auch KSPROPERTY_TUNER_STANDARD_MODE-Eigenschaft ab, um Informationen zur automatischen Signalstandarderkennung zu erfahren. Wenn im angeforderten Bereich kein Signal gefunden wurde, gibt die KSPROPERTY_TUNER_SCAN_STATUS-Eigenschaft den Tuner_LockType_None Wert im LockStatus-Element der KSPROPERTY_TUNER_SCAN_STATUS_S-Struktur zurück. Wenn das Optimierungsgerät automatisch den Tunerstandard aus dem Signal erkennen kann und ein Signal in einem alternativen Standard gefunden wurde, kann das Tuninggerät selbst alle Anforderungen an die KSPROPERTY_TUNER_STANDARD-Eigenschaft verarbeiten. Das Optimierungsgerät kann möglicherweise nicht über eine PLL-Sperre (Phased-Lock-Loop) hinausgehen, und es kann angeben, dass der Standard nicht bekannt ist. Oder das Optimierungsgerät kann sich automatisch an einen anderen Signalstandard anpassen. Außerdem kann das Optimierungsgerät sogar eine vollständige Sperre für diesen Signalstandard erhalten und den alternativen Standard bestimmen. Solche Situationen können auftreten, wenn im Frequenzspektrum mehrere Signalstandards vorhanden sind.
Randbedingungen
Wenn der Treiber feststellt, dass die Mittelfrequenz eines Kanals außerhalb des von einer Anwendung bereitgestellten Bereichs liegt, muss der Treiber dieses Signal ignorieren und zum nächsten Signal wechseln. der Treiber darf innerhalb des angegebenen Bereichs nicht die bestmögliche Näherung zurückgeben. Der Treiber muss zum nächsten Signal wechseln, um doppeltes Zählen von Kanälen zu vermeiden, wenn eine Anwendung versucht, eine Kanalliste zu kompilieren.
Aus demselben Grund muss die Anwendung den Abfragebereich um die Hälfte der erwarteten Kanalbandbreite (etwa 6/2 = 3 MHz für analoges und digitales Fernsehen) verschieben, um sicherzustellen, dass Kanäle nicht doppelt gezählt werden, insbesondere wenn die Hardware ein Signal trifft, das die Hardware nicht decodieren kann. In dieser Situation hat der Treiber Schwierigkeiten, das Doppelte zählen bestimmter Kanäle zu vermeiden.
Multistandardspektren
Der Scanvorgang muss abgeschlossen werden, wenn ein neuer Kanal oder ein neues Signal gefunden wird. Der Treiber gibt dann den Scan-status über die eigenschaft KSPROPERTY_TUNER_SCAN_STATUS zurück. Die Überprüfung muss abgeschlossen werden, wenn ein neuer Kanal gefunden wird, auch wenn der Treiber feststellt, dass der neu gefundene Kanal nicht dem zuvor angewendeten Standard entspricht. Die Anwendung muss die neuen Kanalinformationen verarbeiten und eine Scananforderung erneut übermitteln, um einen anderen Kanal mit demselben Signalstandard zu finden.