Fonction de rappel PFNKSPINSETDEVICESTATE (ks.h)
Une routine de minidriver AVStream AVStrMiniPinSetDeviceState 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 sera fourni par les minidrivers qui doivent modifier 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
La cible KSSTATE après réception du IOCTL.
[in] FromState
Valeur de retour
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 de 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 la SetDeviceState membre de sa structure KSPIN_DISPATCH.
Les minidrivers ne recevront pas d’arrêt lors de la connexion initiale de la broche.
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 modifications d’état filtrées 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 passe à KSSTATE_ACQUIRE, KSSTATE_ACQUIRE transitions vers KSSTATE_PAUSE, et ainsi de suite. 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 la DeviceState membre 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 modifications d’état non filtrées par le biais de cette routine. Par conséquent, les broches de transport non standard doivent être prêtes à traiter les modifications d’état qui sautent plus d’une seule étape. Par exemple, considérez 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 la DeviceState membre de la structure KSPIN appropriée.
Cette routine est facultative.
Exigences
Exigence | Valeur |
---|---|
client minimum 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 | Bureau |
d’en-tête | ks.h (include Ks.h) |
IRQL | PASSIVE_LEVEL |