Freigeben über


Datenbereiche mit diskreten Werten

Wenn Ihr Audiogerät Beispielfrequenzen von 11, 22 und 44 kHz unterstützt, können Sie beispielsweise alle drei Frequenzen als Bereich von 11 bis 44 kHz in einer einzigen KSDATARANGE_AUDIO Struktur angeben. Diese Technik hat den Vorteil, präzise zu sein. Ein potenzieller Nachteil besteht darin, dass ein fehlerhafter Datenabschnitts-Handler einen ungültigen Parameterwert auswählen kann (z. B. 27 kHz), der allerdings innerhalb des Bereichs liegt. In diesem Fall bleibt dem Adaptertreiber keine andere Wahl, als den NewStream-Aufruf fehlschlagen zu lassen (z. B. siehe IMiniportWavePci::NewStream), der versucht, einen Stecker mit dem ungültigen Format zu erstellen.

Ein weiterer Ansatz besteht darin, eine Liste von Datenbereichen bereitzustellen, in denen jeder Datenbereich einen einzelnen Wert anstelle eines Wertebereichs für jeden Parameter angibt. Anstatt z. B. einen einzelnen Datenbereich bereitzustellen, um einen Bereich von Stichprobenfrequenzen von 11 bis 44 kHz anzugeben, kann das Datenbereichsarray drei separate Elemente für 11, 22 und 44 kHz enthalten. In jedem dieser Elemente werden die maximalen und minimalen Stichprobenfrequenzen auf denselben Wert festgelegt (11, 22 oder 44 kHz). Der Vorteil dieses Ansatzes besteht darin, dass es jede Mehrdeutigkeit über die genauen Werte beseitigt, die unterstützt werden. Wenn ein einzelner Wert gegenüber einem anderen bevorzugt wird, kann der Datenbereich, der diesen Wert enthält, an eine Position im Array verschoben werden, die sich vor dem Datenbereich befindet, der den anderen Wert enthält. Ein kleiner Nachteil einzelner Werte besteht darin, dass sie die Größe des Datenbereicharrays erhöhen können.