Freigeben über


PFNKSPINSETDEVICESTATE-Rückruffunktion (ks.h)

Die AVStrMiniPinSetDeviceState Routine eines AVStream Minidrivers wird aufgerufen, wenn der Status einer KSPIN- Struktur aufgrund der Ankunft einer Verbindungszustandseigenschaft "set" IOCTL geändert wird. In der Regel wird dies von Minidrivern 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

Das Ziel KSSTATE nach Erhalt der IOCTL.

[in] FromState

Der vorherige KSSTATE-.

Rückgabewert

Gibt STATUS_SUCCESS oder den Fehlercode zurück, der vom Versuch zurückgegeben wurde, den Zustand festzulegen. Geben Sie STATUS_PENDING nicht zurück. Das Filtersteuerelement mutex wird während dieser Funktion gehalten. Siehe Filter control Mutex in AVStream.

Bemerkungen

Der Minidriver gibt die Adresse dieser Routine in der SetDeviceState Member seiner KSPIN_DISPATCH Struktur an.

Minidriver erhalten bei der ersten Verbindung des Pins keinen Stopp.

Pins, die den Standardtransportmechanismus verwenden (Standardschnittstelle/Standardmedium oder eine explizite Verwendung von KSPIN_FLAG_USE_STANDARD_TRANSPORT in KSPIN_DESCRIPTOR_EX), empfangen gefilterte Zustandsänderungen durch die eigene Pipe über diese Routine. Dies bedeutet, dass kein Übergang mehr als ein einzelner Schritt ist. Anders ausgedrückt: KSSTATE_STOP Übergänge zu KSSTATE_ACQUIRE, KSSTATE_ACQUIRE Übergänge zu KSSTATE_PAUSE usw. Darüber hinaus stellen Zustandsänderungen, die in dieser Routine empfangen werden, den Zustand des Rohrs als Ganzes dar, nicht den einzelnen Zustand des Pins, wie im DeviceState Mitglied der KSPIN-Struktur angegeben.

Pins, die nicht den Standardtransportmechanismus verwenden (nicht standardmäßige Schnittstelle, nicht standardmäßiges Medium oder eine explizite Verwendung von KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT in KSPIN_DESCRIPTOR_EX), empfangen nicht gefilterte Zustandsänderungen durch diese Routine. Daher müssen nicht standardmäßige Transport-Pins vorbereitet sein, um Zustandsänderungen zu behandeln, die mehr als einen einzelnen Schritt springen. Betrachten Sie als Beispiel einen Sprung von KSSTATE_RUN zu KSSTATE_STOP, ohne KSSTATE_PAUSE dazwischen zu stellen. Darüber hinaus ist der an diese Routine gemeldete Zustand mit dem zustand identisch, der im DeviceState Mitglied der relevanten KSPIN-Struktur gemeldet wurde.

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

KSPIN_DISPATCH