PFNKSPINSETDEVICESTATE-Rückruffunktion (ks.h)
Die AVStrMiniPinSetDeviceState-Routine eines AVStream-Minidrivers wird aufgerufen, wenn der Zustand einer KSPIN-Struktur aufgrund des Eingangs der Verbindungszustandseigenschaft "set" IOCTL geändert wird. In der Regel wird dies von Minitreibern bereitgestellt, die den Zustand der Hardware ändern müssen.
Syntax
PFNKSPINSETDEVICESTATE Pfnkspinsetdevicestate;
NTSTATUS Pfnkspinsetdevicestate(
[in] PKSPIN Pin,
[in] KSSTATE ToState,
[in] KSSTATE FromState
)
{...}
Parameter
[in] Pin
Zeiger auf die KSPIN-Struktur , für die sich der Zustand ändert.
[in] ToState
Der Ziel-KSSTATE nach Erhalt der IOCTL.
[in] FromState
Der vorherige KSSTATE.
Rückgabewert
Gibt STATUS_SUCCESS oder den Fehlercode zurück, der beim Festlegen des Zustands zurückgegeben wurde. Geben Sie STATUS_PENDING nicht zurück. Der Mutex des Filtersteuerelements wird während dieser Funktion gehalten. Weitere Informationen finden Sie unter Filter Control Mutex in AVStream.
Hinweise
Der Minidriver gibt die Adresse dieser Routine im SetDeviceState-Element der KSPIN_DISPATCH-Struktur an.
Minidriver erhalten bei der ersten Verbindung des Pins keinen Stopp.
Pins, die den Standardtransportmechanismus (Standardschnittstelle/Standardmedium oder explizite Verwendung von KSPIN_FLAG_USE_STANDARD_TRANSPORT in KSPIN_DESCRIPTOR_EX) verwenden, empfangen gefilterte Zustandsänderungen über die besitzende Pipe über diese Routine. Dies bedeutet, dass kein Übergang mehr als ein einzelner Schritt ist. Anders ausgedrückt: KSSTATE_STOP wechselt zu KSSTATE_ACQUIRE, KSSTATE_ACQUIRE zu KSSTATE_PAUSE usw. Darüber hinaus stellen in dieser Routine empfangene Zustandsänderungen den Zustand der Pipe als Ganzes dar, nicht den individuellen Zustand des Pins, wie er im DeviceState-Member der KSPIN-Struktur gemeldet wird.
Pins, die nicht den Standardtransportmechanismus verwenden (nicht standardmäßige Schnittstelle, nicht standardmäßiges Medium oder explizite Verwendung von KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT in KSPIN_DESCRIPTOR_EX), empfangen nicht gefilterte Zustandsänderungen über diese Routine. Daher müssen nicht standardmäßige Transportpins darauf vorbereitet sein, Zustandsänderungen zu verarbeiten, die mehr als ein einzelner Schritt springen. Stellen Sie sich beispielsweise einen Sprung von KSSTATE_RUN zu KSSTATE_STOP ohne dazwischen liegende KSSTATE_PAUSE vor. Darüber hinaus ist der an diese Routine gemeldete Zustand identisch mit dem Status, der im DeviceState-Member der relevanten KSPIN-Struktur gemeldet wird.
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 |