KsPinAttemptProcessing, fonction (ks.h)

La fonction KsPinAttemptProcessing permet de reprendre le traitement sur une broche spécifique sur un filtre centré sur les broches. Il tente d’initier le traitement sur Pin en envoyant un appel de répartition de traitement à l’objet de traitement de Pin.

Syntaxe

void KsPinAttemptProcessing(
  [in] PKSPIN  Pin,
  [in] BOOLEAN Asynchronous
);

Paramètres

[in] Pin

Pointeur vers une structure KSPIN qui représente l’objet de broche AVStream sur lequel tenter de traiter.

Avertissement

Ce paramètre est obligatoire. Si vous appelez KsPinAttemptProcessing avec une valeur pinnull, l’instabilité du système peut en résulter.

[in] Asynchronous

Ce paramètre indique la préférence du minidriver si le traitement doit avoir lieu de manière synchrone ou asynchrone. Si la valeur est TRUE, le traitement est toujours asynchrone. Toutefois, le traitement synchrone ne se produit que dans certaines circonstances. Pour plus d’informations, consultez la section Remarques ci-dessous.

Valeur de retour

None

Remarques

Un minidriver peut avoir besoin d’appeler KsPinAttemptProcessing pour reprendre le traitement dans différentes situations. Par exemple, si le client a fermé la porte de contrôle de traitement avec KsGateTurnInputOff, appelez cette fonction quand vous êtes prêt à tenter le traitement. Notez que cela entraîne une distribution de traitement uniquement si la porte de contrôle du processus est à l’état ouvert. Une autre situation implique que le minidriver ait précédemment retourné STATUS_PENDING à une expédition de traitement. Pour plus d’informations, consultez Redémarrage du traitement dans AVStream et Portes de contrôle de flux dans AVStream.

La distribution de traitement se produit de manière synchrone ou asynchrone, et uniquement si la porte de contrôle de traitement est ouverte. L’indicateur asynchrone spécifie la préférence du minidriver. Si le minidriver demande une distribution de processus asynchrone, la répartition est toujours asynchrone. Toutefois, même si l’appelant définit Asynchrone sur FALSE, une distribution synchrone se produit uniquement si le système s’exécute actuellement à une valeur IRQL inférieure à l’IRQL de traitement maximal. En d’autres termes, si le minidriver ne spécifie pas le traitement au niveau de la répartition et que l’appel est effectué à IRQL = DISPATCH_LEVEL, l’appel se produit dans un élément de travail asynchrone à PASSIVE_LEVEL quelle que soit la valeur asynchrone. Pour plus d’informations, consultez Traitement centré sur les filtres et Traitement centré sur les broches.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ks.h (inclure Ks.h)
Bibliothèque Ks.lib
IRQL <=DISPATCH_LEVEL (voir remarques)

Voir aussi

KSFILTER_DISPATCH

KsFilterAttemptProcessing

KsGateCaptureThreshold