KSPROPERTY_PIN_MODEDATAFORMATS

Clients verwenden die KSPROPERTY_PIN_MODEDATAFORMATS-Eigenschaft , um eine Liste der unterstützten Formate für jeden unterstützten Audiosignalverarbeitungsmodus für von der Pin factory instanziierte Pins abzurufen.

Nutzungszusammenfassungstabelle

Herunterladen Set Ziel Eigenschaftendeskriptortyp Eigenschaftswerttyp
Ja Nein Filter KSP_PIN, gefolgt von einer Modus-GUID KSMULTIPLE_ITEM Struktur, gefolgt von einer Sequenz von KSDATAFORMAT-Strukturen

Bemerkungen

Clients verwenden diese Eigenschaft, um eine Liste von Formaten abzurufen, die für einen bestimmten Audiosignalverarbeitungsmodus durch von der Pin factory instanziierte Pins unterstützt werden.

Geben Sie diese Eigenschaft mithilfe von KSP_PIN gefolgt von der Modus-GUID an, wobei das KSP_PIN-Element und die Modus-GUID die Anheft factory und den Modus angeben, für die die Liste der Formate zurückgegeben werden soll.

KSPROPERTY_PIN_MODEDATAFORMATS gibt die unterstützten Formate als KSMULTIPLE_ITEM-Struktur zurück, bei der jedes Element in der Struktur ein ULONGLONG mit dem Offset auf eine bestimmte KSDATAFORMAT-Struktur im Wert vom Anfang der KSMULTIPLE_ITEM ist.

  • Der wert KSMULTIPLE_ITEM::Size enthält die Größe der KSMULTIPLE_ITEM und die Größen der einzelnen KSDATAFORMAT-Dateien.

  • Der wert KSMULTIPLE_ITEM::Count enthält die Anzahl der Indizes zu jedem KSDATAFORMAT.

In fast allen Fällen werden die zurückgegebenen KSDATAFORMAT-Strukturen tatsächlich KSDATAFORMAT_WAVEFORMATEXTENSIBLE oder KSDATAFORMAT_WAVEFORMATEX Strukturen mit einer Größe, die übereinstimmt.

Als Beispiel würde ein Wert für eine Pin factory, die zwei Formate unterstützt, wie folgt aussehen.

{
    // Example Property Value Result, with 2 formats
    // When computing the FormatSize make sure to align the size to ULONGLONG
    // KSDATAFORMAT::Size is WDF_ALIGN_SIZE_UP(KsDataFormat->FormatSize, sizeof(ULONGLONG));
    // Size of the KSMULTIPLE_ITEM structure + Size of two ULONG offset values + Size of first format + Size of second format
    sizeof(KSMULTIPLE_ITEM) + sizeof(ULONG)*2 + (First KSDATAFORMAT::Size) + (Second KSDATAFORMAT::Size),
    // Number of formats being returned
    2,
    // Offset of the first format from the beginning of the Property Value
    2 * sizeof(ULONG),
    // Offset of the second format from the beginning of the Property Value
    2 * sizeof(ULONG) + (First KSDATAFORMAT::Size),
    // First format structure
    {(First KSDATAFORMAT)},
    // Second format structure
    {(Second KSDATAFORMAT)}
}

Weitere Informationen finden Sie unter Erweiterbare Wave-Format Deskriptoren.

Empfehlungen für unterstütztes Modusformat und Puffer

Ab Windows 10, Version 2004, ist die Verwendung von KSPROPERTY_PIN_MODEDATAFORMATS und KSAUDIO_PACKETSIZE_CONSTRAINTS2 der bevorzugte Ansatz für Treiber, um die unterstützten Audiosignalverarbeitungsmodusformate und Puffergrößeneinschränkungen zu melden. Mit diesem Ansatz kann das Windows-Audiosystem die Endpunktstreamingfunktionen effizient abrufen, ohne zahlreiche Streams erstellen zu müssen, um die vom Endpunkt unterstützten Formate und Puffergrößen zu ermitteln.

Anforderungen

Version: Verfügbar ab Windows 10, Version 2004

Header: ks.h (include Ks.h)

Weitere Informationen

KSP_PIN

KSDATAFORMAT

KSAUDIO_PACKETSIZE_CONSTRAINTS2

KSDATAFORMAT_WAVEFORMATEX