KsGenerateEvents-Funktion (ks.h)
Die KsGenerateEvents-Funktion generiert Ereignisse eines angegebenen Typs, die in Objektlistevorhanden 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. Hierbei kann es sich um einen AVStream-Filter oder ein Pinobjekt handeln.
[in, optional] EventSet
Die GUID des Ereignissatzes, die übereinstimmen soll, um zu bestimmen, welche Ereignisse generiert werden sollen. Wenn dieser Parameter NULL-ist, wird festgelegte GUID nicht zum Ermitteln übereinstimmender Ereignisse berücksichtigt.
[in] EventId
Die Ereignis-ID, die übereinstimmen soll, um zu bestimmen, welche Ereignisse generiert werden sollen.
[in] DataSize
Die Größe in Byte der Daten, 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 ausgeführt, um zu bestimmen, ob ein Ereignis generiert werden soll (nur *EventSet *und EventId verwendet werden).
[in, optional] CallBackContext
Ein Zeiger auf einen vom Aufrufer angegebenen Kontext, der an die Rückruffunktion übergeben wird, CallBack-.
Rückgabewert
Nichts
Bemerkungen
Beim Aufrufen dieser Funktion muss ein Minidriver Data und CallBackContext- in einem gesperrten, nicht seitenfähigen Datensegment platzieren. Beachten Sie außerdem, dass die CallBack- bei DISPATCH_LEVEL erfolgt. Die Rückruffunktion muss sich in einem gesperrten Segment befinden und muss für die Ausführung unter IRQL = DISPATCH_LEVEL vorbereitet sein. Beachten Sie, dass es in DX8 ein zusätzliches Problem gibt, nur: EventSet- muss sich in einem gesperrten Datensegment befinden.
Minidriver rufen diese Funktion normalerweise nicht direkt auf und verwenden stattdessen eine der Versionen, die geeignete Umwandlungen ausführen: KsFilterGenerateEvents oder KsPinGenerateEvents.
Ein Ereignis wird generiert, wenn es in der *-Ereignisliste des *Objekts 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 caller-specified callback, der für zusätzliche Übereinstimmungsermittlung verwendet wird. Es wird wie folgt prototypiert:
BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);
AVStream übergibt den Inhalt des parameters KsGenerateEvents Routine CallBackContext- 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-Ereignisse.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Microsoft Windows XP und höheren Betriebssystemen und DirectX 8.0 und höher directX-Versionen. |
Zielplattform- | Universal |
Header- | ks.h (enthalten Ks.h) |
Library | Ks.lib |
IRQL- | <=DISPATCH_LEVEL |