Funzione KsPinAttemptProcessing (ks.h)
La funzione KsPinAttemptProcessing viene usata per riprendere l'elaborazione su un pin specifico in un filtro incentrato sui pin. Tenta di avviare l'elaborazione sul Pin inviando una chiamata di invio di elaborazione all'oggetto di elaborazione del pin.
Sintassi
void KsPinAttemptProcessing(
[in] PKSPIN Pin,
[in] BOOLEAN Asynchronous
);
Parametri
[in] Pin
Puntatore a una struttura KSPIN che rappresenta l'oggetto pin AVStream su cui tentare l'elaborazione.
Avviso
Questo parametro è obbligatorio. Se si chiama KsPinAttemptProcessing con un valore PinNULL, l'instabilità del sistema può risultare.
[in] Asynchronous
Questo parametro indica la preferenza del minidriver se l'elaborazione deve essere eseguita in modo sincrono o asincrono. Se TRUE, l'elaborazione è sempre asincrona. Tuttavia, l'elaborazione sincrona avviene solo in determinate circostanze. Per altre informazioni, vedere la sezione Osservazioni di seguito.
Valore restituito
nessuno
Osservazioni
Un minidriver potrebbe dover chiamare KsPinAttemptProcessing per riprendere l'elaborazione in varie situazioni. Ad esempio, se il client ha chiuso il controllo di elaborazione con KsGateTurnInputOff, chiamare questa funzione quando è pronto per tentare l'elaborazione. Si noti che questo causa solo un invio di elaborazione se il controllo del processo si trova nello stato aperto. Un'altra situazione implica che il minidriver abbia precedentemente restituito STATUS_PENDING a un invio di elaborazione. Per altri dettagli, vedere Riavvio dell'elaborazione in AVStream e controlli di flusso in AVStream.
L'invio di elaborazione viene eseguito in modo sincrono o asincrono e solo se il controllo di elaborazione è aperto. Il flag Asincrono specifica la preferenza del minidriver. Se il minidriver richiede un invio di processo asincrono, l'invio è sempre asincrono. Tuttavia, anche se il chiamante imposta Asincrona su FALSE, un dispatch sincrono si verifica solo se il sistema è attualmente in esecuzione in un IRQL inferiore al numero massimo di elaborazione IRQL. In altre parole, se il minidriver non specifica l'elaborazione a livello di invio e la chiamata viene eseguita in IRQL = DISPATCH_LEVEL, la chiamata viene eseguita in un elemento di lavoro asincrono in PASSIVE_LEVEL indipendentemente dal valore asincrono asincrono. Per altre informazioni, vedere Elaborazione basata su filtri e elaborazione basata su pin.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | ks.h (include Ks.h) |
Libreria | Ks.lib |
IRQL | <=DISPATCH_LEVEL (vedere la sezione Osservazioni) |