KsDisableEvent-Funktion (ks.h)
Die funktion KsDisableEvent deaktiviert ereignisse, die über IOCTL_KS_DISABLE_EVENT angefordert werden. Es reagiert auf alle Ereignisse, die zuvor über KsEnableEventaktiviert wurden. Wenn die Länge des Eingabepuffers null ist, wird davon ausgegangen, dass alle Ereignisse in der Liste deaktiviert werden sollen. Diese Funktion kann nur bei PASSIVE_LEVEL aufgerufen werden.
Syntax
KSDDKAPI NTSTATUS KsDisableEvent(
[in] PIRP Irp,
[in, out] PLIST_ENTRY EventsList,
[in] KSEVENTS_LOCKTYPE EventsFlags,
[in] PVOID EventsLock
);
Parameter
[in] Irp
Gibt das an die Entfernungsfunktion übergebene IRP an, das das IRP zum Abrufen von Kontextinformationen verwendet. Das dem IRP zugeordnete Dateiobjekt wird verwendet, um mit dem ursprünglich beim Aktivieren des Ereignisses angegebenen Dateiobjekt zu vergleichen. Dadurch kann eine einzelne Ereignisliste für mehrere Clients verwendet werden, die von Dateiobjekten unterschieden werden.
[in, out] EventsList
Verweist auf den Kopf der Liste der KSEVENT_ENTRY Elemente, auf denen das Ereignis gefunden werden kann. Wenn ein Client mehrere Ereignislisten verwendet und nicht weiß, welche Liste dieses Ereignis aktiviert ist, kann der Client diese Funktion mehrmals aufrufen. Ein Nicht gefundenes Ereignis gibt STATUS_UNSUCCESSFUL zurück.
[in] EventsFlags
Gibt ein KSEVENTS_LOCKTYPE Flag an, das den Typ der Ausschlusssperre angibt, die für den Zugriff auf die Ereignisliste verwendet werden soll. Wenn keine Kennzeichnung festgelegt ist, wird keine Sperre übernommen.
[in] EventsLock
Wird verwendet, um den Zugriff auf ein Element in der Liste zu synchronisieren. Nachdem auf das Element zugegriffen wurde, wird es als gelöscht markiert, sodass nachfolgende Entfernungsanforderungen fehlschlagen. Die Sperre wird nach dem Aufrufen der Entfernungsfunktion (falls vorhanden) freigegeben. Die Entfernungsfunktion muss mit der Ereignisgenerierung synchronisiert werden, bevor das Element tatsächlich aus der Liste entfernt wird.
Rückgabewert
Die KsDisableEvent--Funktion gibt STATUS_SUCCESS zurück, wenn dies erfolgreich ist, oder einen Fehler, der für das aktivierte Ereignis spezifisch 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
Es ist wichtig, dass der Remove-Handler mit der Ereignisgenerierung synchronisiert wird, um sicherzustellen, dass das Ereignis, wenn das Ereignis aus der Liste entfernt wird, derzeit nicht gewartet wird. Der Zugriff auf diese Liste wird davon ausgegangen, dass sie mit der übergebenen Sperre gesteuert wird.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | ks.h (enthalten Ks.h) |
Library | Ks.lib |