Freigeben über


KsGenerateEvents-Funktion (ks.h)

Die KsGenerateEvents-Funktion generiert Ereignisse eines angegebenen Typs, die in der Ereignisliste von Object vorhanden sind.

Syntax

void KsGenerateEvents(
  [in]           PVOID                      Object,
  [in, optional] const GUID                 *EventSet,
  [in]           ULONG                      EventId,
  [in]           ULONG                      DataSize,
  [in, optional] PVOID                      Data,
  [in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
  [in, optional] PVOID                      CallBackContext
);

Parameter

[in] Object

Das Objekt, für das Ereignisse generiert werden sollen. Dies kann ein AVStream-Filter oder ein Anheftobjekt sein.

[in, optional] EventSet

Die Ereignis-GUID wird auf übereinstimmungen festgelegt, um zu bestimmen, welche Ereignisse generiert werden sollen. Wenn dieser Parameter NULL ist, wird die festgelegte GUID nicht berücksichtigt, um übereinstimmende Ereignisse zu bestimmen.

[in] EventId

Die abzugleichende Ereignis-ID, um zu bestimmen, welche Ereignisse generiert werden sollen.

[in] DataSize

Die Größe der Daten in Bytes, mit denen das Datenereignis generiert werden soll.

[in, optional] Data

Ein Zeiger auf einen Datenpuffer, der in die Ereignisbenachrichtigung eingeschlossen werden soll. Wenn der Treiber keine zusätzlichen Informationen über die Benachrichtigung übermitteln muss, legen Sie diesen optionalen Parameter auf NULL fest.

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

[in, optional] CallBackContext

Ein Zeiger auf einen vom Aufrufer angegebenen Kontext, der an die Rückruffunktion CallBack übergeben wird.

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.

Minidriver rufen diese Funktion in der Regel nicht direkt auf und verwenden stattdessen eine der Versionen, die eine entsprechende Umwandlung durchführt: KsFilterGenerateEvents oder KsPinGenerateEvents.

Ein Ereignis wird generiert, wenn es in der *Ereignisliste von *Object vorhanden ist und *EventId * mit der ID des Ereignisses übereinstimmt, EventSet entweder mit der festgelegten GUID des Ereignisses übereinstimmt oder NULL ist, und *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 KsGenerateEvents-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 Universell
Header ks.h (ks.h einschließen)
Bibliothek Ks.lib
IRQL <=DISPATCH_LEVEL

Weitere Informationen

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsPinGenerateEvents