KSEVENTDATA-Struktur (ks.h)

Kernelstreamingclients senden die KSEVENTDATA-Struktur an den Klassentreiber, um eine Benachrichtigungsmethode anzugeben.

Syntax

typedef struct {
  ULONG NotificationType;
  union {
    struct {
      HANDLE    Event;
      ULONG_PTR Reserved[2];
    } EventHandle;
    struct {
      HANDLE Semaphore;
      ULONG  Reserved;
      LONG   Adjustment;
    } SemaphoreHandle;
    struct {
      PVOID     Event;
      KPRIORITY Increment;
      ULONG_PTR Reserved;
    } EventObject;
    struct {
      PVOID     Semaphore;
      KPRIORITY Increment;
      LONG      Adjustment;
    } SemaphoreObject;
    struct {
      PKDPC     Dpc;
      ULONG     ReferenceCount;
      ULONG_PTR Reserved;
    } Dpc;
    struct {
      PWORK_QUEUE_ITEM WorkQueueItem;
      WORK_QUEUE_TYPE  WorkQueueType;
      ULONG_PTR        Reserved;
    } WorkItem;
    struct {
      PWORK_QUEUE_ITEM WorkQueueItem;
      PKSWORKER        KsWorkerObject;
      ULONG_PTR        Reserved;
    } KsWorkItem;
    struct {
      PVOID    Unused;
      LONG_PTR Alignment[2];
    } Alignment;
  };
} KSEVENTDATA, *PKSEVENTDATA;

Member

NotificationType

Enthält Flags, die angeben, welcher Benachrichtigungstyp ausgeführt werden soll. In der folgenden Tabelle sind alle möglichen Werte für das NotificationType-Element aufgeführt.

NotificationType-Flag BESCHREIBUNG
KSEVENTF_EVENT_HANDLE Gibt an, dass ein Win32-Synchronisierungs- oder Benachrichtigungsobjekthandle übergeben wird. Das KSEVENTDATA. Das EventHandle.Event-Element enthält das Handle.
KSEVENTF_SEMAPHORE_HANDLE Gibt an, dass ein Win32-Semaphorhandle übergeben wird. Das KSEVENTDATA. Das SemaphoreHandle.Semaphore-Element enthält das Handle.
KSEVENTF_EVENT_OBJECT Gibt an, dass ein Zeiger auf ein Kernelsynchronisierungs- oder Benachrichtigungsobjekt übergeben wird. Das KSEVENTDATA. Das EventObject.Event-Element enthält einen Zeiger auf dieses Objekt. Dies ist nur für Clients im Kernelmodus verfügbar.
KSEVENTF_SEMAPHORE_OBJECT Gibt an, dass ein Zeiger auf ein Kernel-Semaphorobjekt übergeben wird. Das KSEVENTDATA. Das SemaphoreObject.Semaphore-Element enthält einen Zeiger auf dieses Objekt. Dies ist nur für Clients im Kernelmodus verfügbar.
KSEVENTF_DPC Gibt an, dass ein Zeiger auf eine Kernel-DPC-Struktur übergeben wird. Das KSEVENTDATA. Das Dpc.Dpc-Element enthält einen Zeiger auf den DPC. Dies ist nur für Clients im Kernelmodus verfügbar.
KSEVENTF_WORKITEM Gibt an, dass ein Zeiger auf eine Kernelarbeitselementstruktur übergeben wird. Das KSEVENTDATA. WorkItem.WorkQueueItem enthält einen Zeiger auf das Arbeitselement. Dies ist nur für Clients im Kernelmodus verfügbar.
KSEVENTF_KSWORKITEM Gibt an, dass ein Zeiger auf eine Kernelstreaming-Arbeitselementstruktur übergeben wird. Das KSEVENTDATA. KsWorkItem.WorkQueueItem enthält einen Zeiger auf das Arbeitselement und wird in eine Warteschlange für ein zuvor registriertes Kernelstreamingarbeitselement eingereiht. Dies ist nur für Clients im Kernelmodus verfügbar.

EventHandle

Definiert die EventHandle-Struktur .

EventHandle.Event

Enthält ein Handle für ein Synchronisierungsereignis, wenn das KSEVENT_EVENT_HANDLE-Flag festgelegt ist.

EventHandle.Reserved[2]

Reserviert und auf Null festgelegt.

SemaphoreHandle

Definiert die SemaphoreHandle-Struktur .

SemaphoreHandle.Semaphore

Enthält ein Handle für ein Semaphor, wenn das KSEVENT_SEMAPHORE_HANDLE-Flag festgelegt ist.

SemaphoreHandle.Reserved

Reserviert und auf Null festgelegt.

SemaphoreHandle.Adjustment

Enthält die Anpassung des Semaphors, wenn er freigegeben wird.

EventObject

Definiert die EventObject-Struktur .

EventObject.Event

Definiert das PVOID-Memberereignis.

EventObject.Increment

Definiert den KPRIORITY-Memberinkrement.

EventObject.Reserved

Reserviert und auf Null festgelegt.

SemaphoreObject

Definiert die SemaphoreObject-Struktur .

SemaphoreObject.Semaphore

Definiert das PVOID-ElementSemaphor.

SemaphoreObject.Increment

Definiert den KPRIORITY-Memberinkrement.

SemaphoreObject.Adjustment

Definiert die LONG-Memberanpassung.

Dpc

Definiert die Dpc-Struktur .

Dpc.Dpc

Definiert den PKDPC-Member-Dpc.

Dpc.ReferenceCount

Definiert das ULONG-MemberReferenceCount.

Dpc.Reserved

Reserviert und auf Null festgelegt.

WorkItem

Definiert die WorkItem-Struktur .

WorkItem.WorkQueueItem

Definiert das PWORK_QUEUE_ITEM Member WorkQueueItem.

WorkItem.WorkQueueType

Definiert das WORK_QUEUE_TYPE Member WorkQueueType.

WorkItem.Reserved

Reserviert und auf Null festgelegt.

KsWorkItem

Definiert die KsWorkItem-Struktur .

KsWorkItem.WorkQueueItem

Definiert das PWORK_QUEUE_ITEM Member WorkQueueItem.

KsWorkItem.KsWorkerObject

Definiert das PKSWORKER-ElementKsWorkerObject.

KsWorkItem.Reserved

Für die zukünftige Verwendung reserviert.

Alignment

Definiert die Ausrichtungsstruktur .

Alignment.Unused

Wird nicht verwendet.

Alignment.Alignment[2]

Reserviert für die interne Verwendung durch AVStream. Minidriver sollten diesen Member nicht bearbeiten.

Hinweise

Weitere Informationen finden Sie unter KS-Ereignisse.

Anforderungen

Anforderung Wert
Header ks.h (einschließlich Ks.h)

Weitere Informationen

KDPC

KSEVENT

KsIncrementCountedWorker

KsRegisterWorker

WORK_QUEUE_ITEM

WORK_QUEUE_TYPE