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 |