Freigeben über


Datenbereiche mit diskreten Werten

Wenn Ihr Audiogerät beispielsweise Beispielfrequenzen von 11, 22 und 44 kHz unterstützt, können Sie alle drei Frequenzen als Bereich von 11 bis 44 kHz in einer einzelnen KSDATARANGE_AUDIO Struktur angeben. Diese Technik hat den Vorteil, präzise zu sein. Ein potenzieller Nachteil besteht darin, dass ein fehlerhafter Datenschnitthandler möglicherweise einen ungültigen Parameterwert (z. B. 27 kHz) wählt, der innerhalb des Bereichs liegt. In diesem Fall hat der Adaptertreiber keine andere Möglichkeit, als den NewStream-Aufruf zu fehlschlagen (z. B. siehe IMiniportWavePci::NewStream), bei dem versucht wird, eine Pin mit dem ungültigen Format zu erstellen.

Ein anderer Ansatz besteht darin, eine Liste von Datenbereichen bereitzustellen, in denen jeder Datenbereich einen diskreten Wert anstelle eines Wertebereichs für jeden Parameter angibt. Anstatt beispielsweise 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 maximale und minimale Stichprobenfrequenz auf den gleichen Wert (11, 22 oder 44 kHz) festgelegt. Der Vorteil dieses Ansatzes besteht darin, dass er jede Unklarheit über die genauen Werte beseitigt, die unterstützt werden. Wenn ein diskreter Wert gegenüber einem anderen bevorzugt wird, kann der Datenbereich, der diesen Wert enthält, an eine Position im Array verschoben werden, die vor dem Datenbereich liegt, der den anderen Wert enthält. Ein kleiner Nachteil diskreter Werte ist, dass sie die Größe des Datenbereichsarrays erhöhen können.