PFNKSPINSETDATAFORMAT-Rückruffunktion (ks.h)
Die AVStrMiniPinSetDataFormat-Routine eines AVStream-Minidrivers wird zum Zeitpunkt der Pinerstellung 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 Typen dynamischer 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
Zeiger auf die KSPIN-Struktur , für die sich das Datenformat ändert.
[in, optional] OldFormat
Optional. Zeiger auf eine KSDATAFORMAT-Struktur . Minidriver können dieses Feld verwenden, um das Datenformat zu bestimmen, das der Pin vor diesem Aufruf verwendet hat. Wenn NULL, gibt an, dass kein Datenformat für den Pin festgelegt wurde und dass die Erstellungsverteilung der Pin noch nicht erfolgt ist. Ein NULL-Wert hier gibt an, dass diese Routine zur Initialisierungszeit für die Formatüberprüfung aufgerufen wurde.
[in, optional] OldAttributeList
Optional. Zeiger 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
Optional. Der Attributbereich für das neue Format.
Rückgabewert
Gibt STATUS_SUCCESS zurück, wenn der ConnectionFormat-Member von Pin mit dem Bereich übereinstimmt, der an diese Routine übergeben wurde. Geben Sie STATUS_NO_MATCH zurück, wenn ConnectionFormat nicht mit dem übergebenen Bereich übereinstimmt und der Minitreiber weiterhin versuchen möchte, 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 Minitreiber nicht mehr versuchen möchte, eine Übereinstimmung mit einem anderen Bereich zu finden. Geben Sie STATUS_PENDING nicht zurück.
Hinweise
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 einer anfänglichen Überprüfung in diesen Dispatchaufruf an den Minidriver übersetzt wird. Weitere Informationen finden Sie unter Kernel-Streamingproxy. Weitere Informationen finden Sie unter KS-Datenformate und Datenbereiche sowie DataRange-Schnittmengen 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_CREATE empfängt, und Minitreiber sollten darauf vorbereitet sein, mit dieser Situation umzugehen.
OldFormat, OldAttributeList und AttributeRange sind alle optionalen Parameter und können NULL sein.
Diese Routine ist optional.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Microsoft Windows XP und höheren Betriebssystemen sowie DirectX 8.0 und höher DirectX-Versionen. |
Zielplattform | Desktop |
Kopfzeile | ks.h (ks.h einschließen) |
IRQL | PASSIVE_LEVEL |