Share via


Fonction de rappel PFNKSPINSETDEVICESTATE (ks.h)

La routine AVStrMiniPinSetDeviceState d’un minidriver AVStream est appelée lorsque l’état d’une structure KSPIN est modifié en raison de l’arrivée d’une propriété d’état de connexion « set » IOCTL. En règle générale, cela est fourni par les mini-disques qui doivent changer l’état du matériel.

Syntaxe

PFNKSPINSETDEVICESTATE Pfnkspinsetdevicestate;

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

Paramètres

[in] Pin

Pointeur vers la structure KSPIN pour laquelle l’état change.

[in] ToState

KSSTATE cible après réception de l’IOCTL.

[in] FromState

KSSTATE précédent.

Valeur retournée

Retourne STATUS_SUCCESS ou le code d’erreur retourné par la tentative de définition de l’état. Ne retournez pas STATUS_PENDING. Le mutex du contrôle de filtre est conservé pendant cette fonction. Consultez Mutex de contrôle de filtre dans AVStream.

Remarques

Le minidriver spécifie l’adresse de cette routine dans le membre SetDeviceState de sa structure KSPIN_DISPATCH .

Les minidrivers ne recevront pas d’arrêt lors de la connexion initiale de l’épingle.

Les broches qui utilisent le mécanisme de transport standard (interface standard/support standard ou utilisation explicite de KSPIN_FLAG_USE_STANDARD_TRANSPORT dans KSPIN_DESCRIPTOR_EX) reçoivent des changements d’état filtrés via le canal propriétaire via cette routine. Cela signifie qu’aucune transition ne sera plus qu’une seule étape. En d’autres termes, KSSTATE_STOP transitions vers KSSTATE_ACQUIRE, KSSTATE_ACQUIRE transitions vers KSSTATE_PAUSE, etc. En outre, les modifications d’état reçues dans cette routine représentent l’état du canal dans son ensemble, et non l’état individuel de la broche, comme indiqué dans le membre DeviceState de la structure KSPIN.

Les broches qui n’utilisent pas le mécanisme de transport standard (interface non standard, support non standard ou utilisation explicite de KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT dans KSPIN_DESCRIPTOR_EX) reçoivent des changements d’état non filtrés via cette routine. Par conséquent, les broches de transport non standard doivent être prêtes à gérer les changements d’état qui sautent plus d’une seule étape. Prenons l’exemple d’un saut de KSSTATE_RUN à KSSTATE_STOP sans KSSTATE_PAUSE intermédiaire. En outre, l’état signalé à cette routine sera identique à l’état signalé dans le membre DeviceState de la structure KSPIN appropriée.

Cette routine est facultative.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Microsoft Windows XP et les systèmes d’exploitation ultérieurs et DirectX 8.0 et versions ultérieures de DirectX.
Plateforme cible Desktop (Expérience utilisateur)
En-tête ks.h (inclure Ks.h)
IRQL PASSIVE_LEVEL

Voir aussi

KSPIN_DISPATCH