Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die KsEnableEventWithAllocator--Funktion ermöglicht Ereignisse, die über IOCTL_KS_ENABLE_EVENT angefordert werden, ermöglicht aber auch ein optionaler Allocatorrückruf, um einen Puffer für die Parameter bereitzustellen. Er antwortet auf alle ereignisbezeichner, die von den Sätzen definiert wurden. Diese Funktion kann nur bei PASSIVE_LEVEL aufgerufen werden.
Wenn der Filter verwendet wird, muss der Filter den Puffer möglicherweise in nichtkonventionaler Weise freigeben. Beachten Sie, dass die Kennzeichnungen IRP_BUFFERED_IO und IRP_DEALLOCATE_BUFFER bei Verwendung eines benutzerdefinierten Zuweisungszeichens nicht festgelegt werden.
Syntax
KSDDKAPI NTSTATUS KsEnableEventWithAllocator(
[in] PIRP Irp,
[in] ULONG EventSetsCount,
[in] const KSEVENT_SET *EventSet,
[in, out] PLIST_ENTRY EventsList,
[in, optional] KSEVENTS_LOCKTYPE EventsFlags,
[in, optional] PVOID EventsLock,
[in, optional] PFNKSALLOCATOR Allocator,
[in, optional] ULONG EventItemSize
);
Parameter
[in] Irp
Gibt das IRP mit der zu verarbeitenden Aktivierungsanforderung an. Das dem IRP zugeordnete Dateiobjekt wird beim Deaktivieren des Ereignisses mit dem Ereignis für einen späteren Vergleich gespeichert.
[in] EventSetsCount
Gibt die Anzahl der übergebenen Ereignissatzstrukturen an.
[in] EventSet
Gibt einen Zeiger auf die Liste der Ereignissatzinformationen an.
[in, out] EventsList
Wenn das KSEVENT_SET des Aktivierungsereignisses. Der AddHandler für den Ereignissatz ist NULL-, muss auf den Kopf der Liste der KSEVENT_ENTRY Elemente verweisen, zu denen das Ereignis hinzugefügt werden soll. Diese Funktion setzt eine einzelne Liste für mindestens eine Teilmenge von Ereignissen voraus.
[in, optional] EventsFlags
Gibt KSEVENTS_LOCKTYPE Flags an, die den Typ der Ausschlusssperre angeben, die bei einem Zugriff auf die Ereignisliste verwendet werden soll. Wenn keine Kennzeichnung festgelegt ist, wird keine Sperre übernommen. Wenn bereits ein Handler angegeben ist, wird dieser Parameter ignoriert.
[in, optional] EventsLock
Wenn die KSEVENT_SET. AddHandler für den Ereignissatz, der das aktivierte Ereignis enthält, ist NULL-und wird dann verwendet, um den Zugriff auf die Liste zu synchronisieren. Dieser Wert kann NULL- werden, wenn in EventsFlagskein Flag festgelegt ist.
[in, optional] Allocator
Verweist optional auf eine Zuordnungsfunktion, die verwendet wird, um Speicher zum Speichern der Ereignisparameter zuzuweisen.
[in, optional] EventItemSize
Enthält optional die Größe jeder KSEVENT_ITEM Struktur in jeder Ereignisliste. Das Ereigniselement kann erweitert werden, um private Informationen zu speichern. Wenn dieser Parameter null ist, wird die Strukturgröße als normal angenommen. Wenn es größer oder gleich einer Ereigniselementstruktur ist, kann das KSEVENT_ITEM_IRP_STORAGE Makro verwendet werden, um einen Zeiger auf das Ereigniselement zurückzugeben, damit die benutzerdefinierten Daten abgerufen werden können. Auf 64-Bit-Plattformen muss dieser Parameter ein Vielfaches von 8 sein.
Rückgabewert
Identisch mit KsEnableEvent-, die STATUS_SUCCESS bei erfolgreicher Ausführung oder einen Fehler zurückgibt, der für das Ereignis spezifisch ist, das aktiviert wird, wenn dies nicht erfolgreich ist. Die Funktion legt immer den IO_STATUS_BLOCK fest. Informationsfeld des PIRP. IoStatus-Element innerhalb des IRP auf Null. Die IO_STATUS_BLOCK wird nicht festgelegt. Statusfeld, noch wird das IRP abgeschlossen.
Bemerkungen
Wenn der optionale Allocatorrückruf verwendet wird, muss der Filter den Puffer möglicherweise auf nichtkonventionale Weise freigeben. Beachten Sie, dass die Kennzeichnungen IRP_BUFFERED_IO und IRP_DEALLOCATE_BUFFER bei Verwendung eines benutzerdefinierten Zuweisungszeichens nicht festgelegt werden.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform- | Universal |
| Header- | ks.h (enthalten Ks.h) |
| Library | Ks.lib |