KsPinAttemptProcessing, fonction (ks.h)
La fonction KsPinAttemptProcessing est utilisée pour reprendre le traitement sur une broche spécifique sur un filtre centré sur les broches. Il tente de lancer le traitement sur épingler en envoyant un appel de distribution de traitement à 'objet de traitement de l'Épingler.
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 de Épingler de NULL, l’instabilité du système peut se produire.
[in] Asynchronous
Ce paramètre indique la préférence du minidriver si le traitement doit se produire de manière synchrone ou asynchrone. Si TRUE, le traitement est toujours asynchrone. Toutefois, le traitement synchrone se produit uniquement dans certaines circonstances. Pour plus d’informations, consultez la section Remarques ci-dessous.
Valeur de retour
Aucun
Remarques
Un minidriver peut avoir besoin d’appeler KsPinAttemptProcessing pour reprendre le traitement dans différentes situations. Par exemple, si le client a arrêté la porte de contrôle de traitement avec KsGateTurnInputOff, appelez cette fonction quand vous êtes prêt à tenter de traiter. Notez que cela entraîne uniquement une distribution de traitement si la porte de contrôle de processus est dans l’état ouvert. Une autre situation implique que le minidriver retourne auparavant STATUS_PENDING à une distribution 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 de asynchrone spécifie la préférence du minidriver. Si le minidriver demande une distribution de processus asynchrone, la distribution est toujours asynchrone. Toutefois, même si l’appelant définit asynchrone sur faux, une distribution synchrone se produit uniquement si le système s’exécute actuellement à un runtime IRQL inférieur au nombre maximal de traitement IRQL. En d’autres termes, si le minidriver ne spécifie pas de traitement au niveau de répartition et que l’appel est effectué au niveau irQL = DISPATCH_LEVEL, l’appel se produit dans un élément de travail asynchrone à PASSIVE_LEVEL quelle que soit la valeur de asynchrone. Pour plus d’informations, consultez Filter-Centric traitement et Pin-Centric traitement.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | ks.h (include Ks.h) |
bibliothèque | Ks.lib |
IRQL | <=DISPATCH_LEVEL (voir remarques) |