Funzione di callback PFNKSPINSETDEVICESTATE (ks.h)

La routine AVStrMiniPinSetDeviceState di AVStream viene chiamata quando lo stato di una struttura KSPIN viene modificato a causa dell'arrivo di una proprietà dello stato di connessione 'set' IOCTL. In genere, questo verrà fornito da minidriver che devono modificare lo stato dell'hardware.

Sintassi

PFNKSPINSETDEVICESTATE Pfnkspinsetdevicestate;

NTSTATUS Pfnkspinsetdevicestate(
  [in] PKSPIN Pin,
  [in] KSSTATE ToState,
  [in] KSSTATE FromState
)
{...}

Parametri

[in] Pin

Puntatore alla struttura KSPIN per il quale lo stato viene modificato.

[in] ToState

KSSTATE di destinazione dopo la ricezione dell'IOCTL.

[in] FromState

KSSTATE precedente.

Valore restituito

Restituisce STATUS_SUCCESS o il codice di errore restituito dal tentativo di impostare lo stato. Non restituire STATUS_PENDING. Il mutex del controllo filtro viene mantenuto durante questa funzione. Vedere Filtro controllo Mutex in AVStream.

Commenti

Il minidriver specifica l'indirizzo di questa routine nel membro SetDeviceState della relativa struttura di KSPIN_DISPATCH .

I minidriver non riceveranno un arresto dopo la connessione iniziale del pin.

I pin che usano il meccanismo di trasporto standard (supporto standard o medio standard o uso esplicito di KSPIN_FLAG_USE_STANDARD_TRANSPORT in KSPIN_DESCRIPTOR_EX) ricevono modifiche dello stato filtrate tramite la pipe proprietaria tramite questa routine. Ciò significa che nessuna transizione sarà più di un singolo passaggio. In altre parole, KSSTATE_STOP passa a KSSTATE_ACQUIRE, KSSTATE_ACQUIRE passa a KSSTATE_PAUSE e così via. Inoltre, le modifiche dello stato ricevute in questa routine rappresentano lo stato della pipe nel suo complesso, non il singolo stato del pin come indicato nel membro DeviceState della struttura KSPIN.

I pin che non usano il meccanismo di trasporto standard (interfaccia non standard, media non standard o un uso esplicito di KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT in KSPIN_DESCRIPTOR_EX) ricevono modifiche dello stato non filtrate tramite questa routine. Di conseguenza, i pin di trasporto non standard devono essere preparati a gestire le modifiche dello stato che saltano più di un singolo passaggio. Si consideri, ad esempio, un salto da KSSTATE_RUN a KSSTATE_STOP senza intervenire KSSTATE_PAUSE. Inoltre, lo stato segnalato a questa routine sarà identico allo stato segnalato nel membro DeviceState della struttura KSPIN pertinente.

Questa routine è facoltativa.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Microsoft Windows XP e versioni successive e DirectX 8.0 e versioni successive di DirectX.
Piattaforma di destinazione Desktop
Intestazione ks.h (include Ks.h)
IRQL PASSIVE_LEVEL

Vedi anche

KSPIN_DISPATCH