KsPinAttemptProcessing-Funktion (ks.h)
Die KsPinAttemptProcessing-Funktion wird verwendet, um die Verarbeitung an einem bestimmten Pin an einem pinzentrierten Filter fortzusetzen. Es versucht, die Verarbeitung auf Pin zu initiieren, indem ein Verarbeitungsversandaufruf an das Verarbeitungsobjekt von Pin gesendet wird.
Syntax
void KsPinAttemptProcessing(
[in] PKSPIN Pin,
[in] BOOLEAN Asynchronous
);
Parameter
[in] Pin
Ein Zeiger auf eine KSPIN-Struktur , die das AVStream-Pinobjekt darstellt, mit dem versucht werden soll, zu verarbeiten.
Warnung
Dieser Parameter ist verbindlich. Wenn Sie KsPinAttemptProcessing mit dem Pin-WertNULL aufrufen, kann dies zu Systeminstabilität führen.
[in] Asynchronous
Dieser Parameter gibt die Einstellung des Minitreibers an, ob die Verarbeitung synchron oder asynchron erfolgen soll. Wenn TRUE, erfolgt die Verarbeitung immer asynchron. Die synchrone Verarbeitung erfolgt jedoch nur unter bestimmten Umständen. Weitere Informationen finden Sie weiter unten im Abschnitt "Hinweise".
Rückgabewert
Keine
Bemerkungen
Ein Minitreiber muss möglicherweise KsPinAttemptProcessing aufrufen, um die Verarbeitung in verschiedenen Situationen fortzusetzen. Wenn der Client z. B. das Verarbeitungssteuerungsgate mit KsGateTurnInputOff beendet hat, rufen Sie diese Funktion auf, wenn sie für den Verarbeitungsversuch bereit ist. Beachten Sie, dass dies nur dann zu einer Verarbeitungsverteilung führt, wenn sich das Prozesssteuerungsgate im geöffneten Zustand befindet. Eine andere Situation besteht darin, dass der Minitreiber zuvor STATUS_PENDING zu einem Verarbeitungsversand zurückgegeben hat. Weitere Informationen finden Sie unter Neustarten der Verarbeitung in AVStream und Ablaufsteuerungsgates in AVStream.
Der Verarbeitungsversand erfolgt entweder synchron oder asynchron und nur , wenn das Verarbeitungssteuerungsgate geöffnet ist. Das Flag Asynchronous gibt die Einstellung des Minitreibers an. Wenn der Minidriver eine asynchrone Prozessverteilung anfordert, ist die Verteilerverteilung immer asynchron. Selbst wenn der Aufrufer Asynchron auf FALSE festlegt, tritt eine synchrone Verteilung nur auf, wenn das System derzeit mit einer IRQL ausgeführt wird, die kleiner als die maximale Verarbeitungs-IRQL ist. Anders ausgedrückt: Wenn der Minitreiber keine Verarbeitung auf Verteilerebene angibt und der Aufruf unter IRQL = DISPATCH_LEVEL erfolgt, erfolgt der Aufruf in einem asynchronen Arbeitselement bei PASSIVE_LEVEL unabhängig vom Wert von Asynchronous. Weitere Informationen finden Sie unter Filterzentrierte Verarbeitung und pinzentrierte Verarbeitung.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ks.h (ks.h einschließen) |
Bibliothek | Ks.lib |
IRQL | <=DISPATCH_LEVEL (siehe Hinweise) |