KSEVENTDATA 结构 (ks.h)

内核流式处理客户端将 KSEVENTDATA 结构发送到类驱动程序以指定通知方法。

语法

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;

成员

NotificationType

包含指示应执行哪种类型的通知的标志。 下表列出了 NotificationType 成员的所有可能值。

NotificationType 标志 说明
KSEVENTF_EVENT_HANDLE 指示正在传递 Win32 同步或通知对象句柄。 KSEVENTDATA。EventHandle.Event 元素包含 句柄。
KSEVENTF_SEMAPHORE_HANDLE 指示正在传递 Win32 信号灯句柄。 KSEVENTDATA。SemaphoreHandle.Semaphore 元素包含 句柄。
KSEVENTF_EVENT_OBJECT 指示正在传递指向内核同步或通知对象的指针。 KSEVENTDATA。EventObject.Event 元素包含指向此对象的指针。 这仅适用于内核模式客户端。
KSEVENTF_SEMAPHORE_OBJECT 指示正在传递指向内核信号量对象的指针。 KSEVENTDATA。SemaphoreObject.Semaphore 元素包含指向此对象的指针。 这仅适用于内核模式客户端。
KSEVENTF_DPC 指示正在传递指向内核 DPC 结构的指针。 KSEVENTDATA。Dpc.Dpc 元素包含指向 DPC 的指针。 这仅适用于内核模式客户端。
KSEVENTF_WORKITEM 指示正在传递指向内核工作项结构的指针。 KSEVENTDATA。WorkItem.WorkQueueItem 包含指向工作项的指针。 这仅适用于内核模式客户端。
KSEVENTF_KSWORKITEM 指示正在传递指向内核流式处理工作项结构的指针。 KSEVENTDATA。KsWorkItem.WorkQueueItem 包含指向工作项的指针,并排队到以前注册的内核流式处理工作项。 这仅适用于内核模式客户端。

EventHandle

定义 EventHandle 结构。

EventHandle.Event

包含设置KSEVENT_EVENT_HANDLE标志时同步事件的句柄。

EventHandle.Reserved[2]

保留并设置为零。

SemaphoreHandle

定义 SemaphoreHandle 结构。

SemaphoreHandle.Semaphore

在设置KSEVENT_SEMAPHORE_HANDLE标志时包含信号灯的句柄。

SemaphoreHandle.Reserved

保留并设置为零。

SemaphoreHandle.Adjustment

包含释放信号灯时的信号量调整。

EventObject

定义 EventObject 结构。

EventObject.Event

定义 PVOID 成员 事件

EventObject.Increment

定义 KPRIORITY 成员 增量

EventObject.Reserved

保留并设置为零。

SemaphoreObject

定义 SemaphoreObject 结构。

SemaphoreObject.Semaphore

定义 PVOID 成员 信号量

SemaphoreObject.Increment

定义 KPRIORITY 成员 增量

SemaphoreObject.Adjustment

定义 LONG 成员 调整

Dpc

定义 Dpc 结构。

Dpc.Dpc

定义 PKDPC 成员 Dpc

Dpc.ReferenceCount

定义 ULONG 成员 ReferenceCount

Dpc.Reserved

保留并设置为零。

WorkItem

定义 WorkItem 结构。

WorkItem.WorkQueueItem

定义 PWORK_QUEUE_ITEM 成员 WorkQueueItem

WorkItem.WorkQueueType

定义 WORK_QUEUE_TYPE 成员 WorkQueueType

WorkItem.Reserved

保留并设置为零。

KsWorkItem

定义 KsWorkItem 结构。

KsWorkItem.WorkQueueItem

定义 PWORK_QUEUE_ITEM 成员 WorkQueueItem

KsWorkItem.KsWorkerObject

定义 PKSWORKER 成员 KsWorkerObject

KsWorkItem.Reserved

保留供将来使用。

Alignment

定义 对齐结构

Alignment.Unused

未使用。

Alignment.Alignment[2]

保留供 AVStream 内部使用。 微型驱动程序不应操作此成员。

注解

有关详细信息,请参阅 KS 事件

要求

要求
Header ks.h (包括 Ks.h)

另请参阅

KDPC

KSEVENT

KsIncrementCountedWorker

KsRegisterWorker

WORK_QUEUE_ITEM

WORK_QUEUE_TYPE