Freigeben über


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

Weitere Informationen

KSEVENT_ENTRY

KsAddEvent

KsGenerateEvents

KsPinGenerateEvents