KsFilterGenerateEvents-Funktion (ks.h)
Die KsFilterGenerateEvents-Funktion generiert Ereignisse eines angegebenen Typs, die in der Ereignisliste von Filter vorhanden sind.
Syntax
void KsFilterGenerateEvents(
[in] PKSFILTER Filter,
[in, optional] const GUID *EventSet,
[in] ULONG EventId,
[in] ULONG DataSize,
[in] PVOID Data,
[in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
[in, optional] PVOID CallBackContext
);
Parameter
[in] Filter
Ein Zeiger auf eine KSFILTER-Struktur , für die Ereignisse generiert werden sollen.
[in, optional] EventSet
Ein Zeiger auf die Ereignissatz-GUID, die übereinstimmen soll, um zu bestimmen, welche Ereignisse generiert werden sollen. Wenn dieser Parameter NULL ist, wird die Ereignissatz-GUID nicht berücksichtigt, um übereinstimmende Ereignisse zu bestimmen.
[in] EventId
Die Ereignis-ID, mit der ermittelt werden soll, welche Ereignisse generiert werden sollen.
[in] DataSize
Die Größe der Daten in Bytes.
[in] Data
Ein Zeiger auf einen Datenpuffer. Geben Sie an, ob ein Datenereignis generiert wird.
[in, optional] CallBack
Ein Zeiger auf eine vom Aufrufer angegebene Funktion, die aufgerufen wird, um zu bestimmen, ob ein bestimmtes Ereignis generiert werden soll. Wenn dies NULL ist, wird keine Rückrufüberprüfung durchgeführt, um zu bestimmen, ob ein Ereignis generiert werden soll (es werden nur *EventSet *und EventId verwendet). Weitere Informationen finden Sie weiter unten im Abschnitt "Hinweise".
[in, optional] CallBackContext
Ein optionaler Zeiger auf einen vom Aufrufer angegebenen Kontext, der an die Rückruffunktion CallBack übergeben wird. Weitere Informationen finden Sie weiter unten im Abschnitt "Hinweise".
Rückgabewert
Keine
Bemerkungen
Beim Aufrufen dieser Funktion muss ein Minidriver Data und CallBackContext in einem gesperrten, nicht ausstellbaren Datensegment platzieren. Beachten Sie außerdem, dass der Rückruf an DISPATCH_LEVEL erfolgt. Die Rückruffunktion muss sich in einem gesperrten Segment befindet und für die Ausführung unter IRQL = DISPATCH_LEVEL vorbereitet sein. Beachten Sie, dass nur in DX8 ein zusätzliches Problem vorliegt: EventSet muss sich in einem gesperrten Datensegment befinden.
Dies ist ein Inlinefunktionsaufruf von KsGenerateEvents , der die erforderliche Typecasting-Funktion ausführt. Minidriver sollten in der Regel diese Version aufrufen, anstatt KsGenerateEvents direkt aufzurufen.
Ein Ereignis wird generiert, wenn die folgenden Bedingungen erfüllt sind:
Das Ereignis ist in der Ereignisliste des Filters vorhanden, und EventId stimmt mit der ID des Ereignisses überein.
EventSet entspricht entweder der festgelegten GUID des Ereignisses oder ist NULL.
CallBack ist entweder NULL oder autorisiert die Übereinstimmung.
CallBack ist ein vom Aufrufer angegebenen Rückruf, der für die zusätzliche Übereinstimmungsermittlung verwendet wird. Es wird wie folgt prototypiert:
BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);
AVStream übergibt den Inhalt des CallBackContext-Parameters der KsFilterGenerateEvents-Routine im Context-Parameter dieses Rückrufs. EventEntry ist ein Zeiger auf eine KSEVENT_ENTRY-Struktur , die das generierte Ereignis angibt. Die Rückruffunktion sollte TRUE zurückgeben, wenn dieses Ereignis generiert werden soll.
Weitere Informationen finden Sie unter Ereignisbehandlung in AVStream - und KS-Ereignissen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Microsoft Windows XP und höheren Betriebssystemen sowie DirectX 8.0 und höher DirectX-Versionen. |
Zielplattform | Desktop |
Kopfzeile | ks.h (ks.h einschließen) |
Bibliothek | Ks.lib |
IRQL | <=DISPATCH_LEVEL (siehe Abschnitt hinweise.) |