Freigeben über


PFNKSPINSETDATAFORMAT-Rückruffunktion (ks.h)

Die AVStrMiniPinSetDataFormat Routine eines AVStream Minidrivers wird zur Pinerstellungszeit aufgerufen, um zu überprüfen, ob das zuvor vereinbarte Datenformat für diese KSPIN- Struktur und eine Übereinstimmung für diese KSDATARANGE- Struktur akzeptabel ist. Diese Routine wird auch aufgrund bestimmter Arten von dynamischen Formatänderungen aufgerufen, z. B. die Annahme einer KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT Eigenschaftsanforderung.

Syntax

PFNKSPINSETDATAFORMAT Pfnkspinsetdataformat;

NTSTATUS Pfnkspinsetdataformat(
  [in]           PKSPIN Pin,
  [in, optional] PKSDATAFORMAT OldFormat,
  [in, optional] PKSMULTIPLE_ITEM OldAttributeList,
  [in]           const KSDATARANGE *DataRange,
  [in, optional] const KSATTRIBUTE_LIST *AttributeRange
)
{...}

Parameter

[in] Pin

Zeigen Sie auf die KSPIN- Struktur, für die sich das Datenformat ändert.

[in, optional] OldFormat

Wahlfrei. Zeiger auf eine KSDATAFORMAT--Struktur. Minidriver können dieses Feld verwenden, um das Datenformat zu bestimmen, das die Pin vor diesem Aufruf verwendet hat. Wenn NULL-, gibt an, dass kein Datenformat für den Pin festgelegt wurde und dass Pins Erstellen des Versands noch nicht erstellt wurde. Ein NULL- Wert gibt an, dass diese Routine zur Überprüfung der Formatierung zur Initialisierung aufgerufen wurde.

[in, optional] OldAttributeList

Wahlfrei. Zeigen Sie auf eine KSMULTIPLE_ITEM Struktur, die Attribute für das vorherige Format speichert.

[in] DataRange

Zeiger auf eine KSDATARANGE Struktur. Der Datenbereich für das neue Format.

[in, optional] AttributeRange

Wahlfrei. Der Attributbereich für das neue Format.

Rückgabewert

Gibt STATUS_SUCCESS zurück, wenn ConnectionFormat-Element Mitglied dem Bereich entspricht, der an diese Routine übergeben wurde. Gibt STATUS_NO_MATCH zurück, wenn ConnectionFormat- nicht mit dem übergebenen Bereich übereinstimmt, und der Minidriver möchte weiterhin versuchen, eine Übereinstimmung mit einem anderen Bereich zu finden. Gibt einen Fehlercode der Wahl zurück, wenn ConnectionFormat- nicht mit dem übergebenen Bereich übereinstimmt und der Minidriver nicht versuchen möchte, eine Übereinstimmung mit einem anderen Bereich zu finden. Geben Sie STATUS_PENDING nicht zurück.

Bemerkungen

In einem Ring 3-Diagramm legt das Kernel Streaming Proxy-Modul (KsProxy) das Datenformat basierend auf dem vereinbarten Verbindungsformat oder einer dynamischen Formatänderung fest. KsProxy gibt eine KSPROPERTY_CONNECTION_DATAFORMAT Anforderung aus, die nach einiger anfänglicher Überprüfung in diesen Dispatch-Aufruf an den Minidriver übersetzt wird. Siehe Kernel-Streamingproxy-. Weitere Informationen finden Sie unter KS Data Formats and Data Ranges und DataRange Intersections in AVStream.

Der Minidriver gibt die Adresse für AVStrMiniPinSetDataFormat- im SetDataFormat-element der KSPIN_DISPATCH Struktur an.

Diese Routine kann aufgerufen werden, bevor der Pin eine IRP_MJ_CREATEempfängt, und Minidriver sollten darauf vorbereitet sein, diese Situation zu bewältigen.

OldFormat, OldAttributeListund AttributeRange sind alle optionalen Parameter und können NULL-sein.

Diese Routine ist optional.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Microsoft Windows XP und höheren Betriebssystemen und DirectX 8.0 und höher directX-Versionen.
Zielplattform- Desktop
Header- ks.h (enthalten Ks.h)
IRQL- PASSIVE_LEVEL

Siehe auch

IRP_MJ_CREATE

KSDATAFORMAT-

KSDATARANGE-

KSMULTIPLE_ITEM

KSPIN-

KSPIN_DISPATCH