KSEVENTDATA structure

Kernel streaming clients send the KSEVENTDATA structure to the class driver to specify a notification method.

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;

Members

NotificationType

Contains flags indicating what type of notification should be performed. The following table lists all the possible values for the NotificationType member.

NotificationType Flag Description
KSEVENTF_EVENT_HANDLE Indicates that a Win32 synchronization or notification object handle is being passed. The KSEVENTDATA.EventHandle.Event element contains the handle.
KSEVENTF_SEMAPHORE_HANDLE Indicates that a Win32 semaphore handle is being passed. The KSEVENTDATA.SemaphoreHandle.Semaphore element contains the handle.
KSEVENTF_EVENT_OBJECT Indicates that a pointer to a kernel synchronization or notification object is being passed. The KSEVENTDATA.EventObject.Event element contains a pointer to this object. This is available only to kernel-mode clients.
KSEVENTF_SEMAPHORE_OBJECT Indicates that a pointer to a kernel semaphore object is being passed. The KSEVENTDATA.SemaphoreObject.Semaphore element contains a pointer to this object. This is available only to kernel-mode clients.
KSEVENTF_DPC Indicates that a pointer to a kernel DPC structure is being passed. The KSEVENTDATA.Dpc.Dpc element contains a pointer to the DPC. This is available only to kernel-mode clients.
KSEVENTF_WORKITEM Indicates that a pointer to a kernel work item structure is being passed. The KSEVENTDATA.WorkItem.WorkQueueItem contains a pointer to the work item. This is available only to kernel-mode clients.
KSEVENTF_KSWORKITEM Indicates that a pointer to a kernel streaming work item structure is being passed. The KSEVENTDATA.KsWorkItem.WorkQueueItem contains a pointer to the work item, and is queued to a previously registered kernel streaming work item. This is available only to kernel-mode clients.

__unnamed_union_0e16_22

__unnamed_union_0e16_22.EventHandle

__unnamed_union_0e16_22.EventHandle.Event

__unnamed_union_0e16_22.EventHandle.Reserved

__unnamed_union_0e16_22.SemaphoreHandle

__unnamed_union_0e16_22.SemaphoreHandle.Semaphore

__unnamed_union_0e16_22.SemaphoreHandle.Reserved

__unnamed_union_0e16_22.SemaphoreHandle.Adjustment

__unnamed_union_0e16_22.EventObject

__unnamed_union_0e16_22.EventObject.Event

__unnamed_union_0e16_22.EventObject.Increment

__unnamed_union_0e16_22.EventObject.Reserved

__unnamed_union_0e16_22.SemaphoreObject

__unnamed_union_0e16_22.SemaphoreObject.Semaphore

__unnamed_union_0e16_22.SemaphoreObject.Increment

__unnamed_union_0e16_22.SemaphoreObject.Adjustment

__unnamed_union_0e16_22.Dpc

__unnamed_union_0e16_22.Dpc.Dpc

__unnamed_union_0e16_22.Dpc.ReferenceCount

__unnamed_union_0e16_22.Dpc.Reserved

__unnamed_union_0e16_22.WorkItem

__unnamed_union_0e16_22.WorkItem.WorkQueueItem

__unnamed_union_0e16_22.WorkItem.WorkQueueType

__unnamed_union_0e16_22.WorkItem.Reserved

__unnamed_union_0e16_22.KsWorkItem

__unnamed_union_0e16_22.KsWorkItem.WorkQueueItem

__unnamed_union_0e16_22.KsWorkItem.KsWorkerObject

__unnamed_union_0e16_22.KsWorkItem.Reserved

__unnamed_union_0e16_22.Alignment

__unnamed_union_0e16_22.Alignment.Unused

__unnamed_union_0e16_22.Alignment.Alignment

Remarks

For more information, see KS Events.

Requirements

   
Header ks.h (include Ks.h)

See Also

KDPC

KSEVENT

KsIncrementCountedWorker

KsRegisterWorker

WORK_QUEUE_ITEM

WORK_QUEUE_TYPE