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) |