Freigeben über


KsDisableEvent-Funktion (ks.h)

Die KsDisableEvent-Funktion deaktiviert Ereignisse, die über IOCTL_KS_DISABLE_EVENT angefordert werden. Es reagiert auf alle Ereignisse, die zuvor über KsEnableEvent aktiviert 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 die an die Entfernungsfunktion übergebene IRP an, die das IRP zum Abrufen von Kontextinformationen verwendet. Das dem IRP zugeordnete Dateiobjekt wird verwendet, um mit dem Dateiobjekt zu vergleichen, das ursprünglich beim Aktivieren des Ereignisses angegeben wurde. Dadurch kann eine einzelne Ereignisliste für mehrere Clients verwendet werden, die nach Dateiobjekten unterschieden werden.

[in, out] EventsList

Zeigt auf den Kopf der Liste der KSEVENT_ENTRY Elemente, auf denen sich das Ereignis befindet. Wenn ein Client mehrere Ereignislisten verwendet und nicht weiß, in welcher Liste dieses Ereignis enthalten 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 beim Zugriff auf die Ereignisliste verwendet werden soll. Wenn kein Flag festgelegt ist, wird keine Sperre genommen.

[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 dann nach dem Aufrufen der Entfernungsfunktion aufgehoben, sofern vorhanden. Die Entfernungsfunktion muss mit der Ereignisgenerierung synchronisiert werden, bevor das Element tatsächlich aus der Liste entfernt wird.

Rückgabewert

Die KsDisableEvent-Funktion gibt bei erfolgreicher Ausführung STATUS_SUCCESS oder einen für das aktivierte Ereignis spezifischen Fehler zurück. Die Funktion legt immer die 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.

Hinweise

Es ist wichtig, dass der Remove-Handler mit der Ereignisgenerierung synchronisiert wird, um sicherzustellen, dass das Ereignis, wenn es aus der Liste entfernt wird, derzeit nicht gewartet wird. Es wird davon ausgegangen, dass der Zugriff auf diese Liste mit der Sperre gesteuert wird.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ks.h (ks.h einschließen)
Bibliothek Ks.lib

Weitere Informationen

KsEnableEvent