Структура 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. The KSEVENTDATA. Элемент EventHandle.Event содержит дескриптор.
KSEVENTF_SEMAPHORE_HANDLE Указывает, что передается дескриптор семафора Win32. The KSEVENTDATA. Элемент SemaphoreHandle.Semaphore содержит дескриптор.
KSEVENTF_EVENT_OBJECT Указывает, что передается указатель на объект синхронизации ядра или уведомления. The KSEVENTDATA. Элемент EventObject.Event содержит указатель на этот объект. Это доступно только клиентам в режиме ядра.
KSEVENTF_SEMAPHORE_OBJECT Указывает, что передается указатель на объект семафора ядра. The KSEVENTDATA. Элемент SemaphoreObject.Semaphore содержит указатель на этот объект. Это доступно только клиентам в режиме ядра.
KSEVENTF_DPC Указывает, что передается указатель на структуру ядра DPC. The KSEVENTDATA. Элемент Dpc.Dpc содержит указатель на DPC. Это доступно только клиентам в режиме ядра.
KSEVENTF_WORKITEM Указывает, что передается указатель на структуру рабочих элементов ядра. The KSEVENTDATA. WorkItem.WorkQueueItem содержит указатель на рабочий элемент. Это доступно только клиентам в режиме ядра.
KSEVENTF_KSWORKITEM Указывает, что передается указатель на структуру рабочих элементов потоковой передачи ядра. The 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

Определяет DPC-членPKDPC.

Dpc.ReferenceCount

Определяет элемент ULONGReferenceCount.

Dpc.Reserved

Зарезервировано и задайте нулевое значение.

WorkItem

Определяет структуру WorkItem .

WorkItem.WorkQueueItem

Определяет член PWORK_QUEUE_ITEMWorkQueueItem.

WorkItem.WorkQueueType

Определяет член WORK_QUEUE_TYPEWorkQueueType.

WorkItem.Reserved

Зарезервировано и задайте нулевое значение.

KsWorkItem

Определяет структуру KsWorkItem .

KsWorkItem.WorkQueueItem

Определяет член PWORK_QUEUE_ITEMWorkQueueItem.

KsWorkItem.KsWorkerObject

Определяет элемент PKSWORKERKsWorkerObject.

KsWorkItem.Reserved

Зарезервировано для последующего использования.

Alignment

Определяет структуру выравнивания .

Alignment.Unused

Не используется.

Alignment.Alignment[2]

Зарезервировано для внутреннего использования AVStream. Мини-накопители не должны манипулировать этим элементом.

Комментарии

Дополнительные сведения см. в разделе События KS.

Требования

Требование Значение
Заголовок ks.h (включая Ks.h)

См. также раздел

KDPC

KSEVENT

KsIncrementCountedWorker

KsRegisterWorker

WORK_QUEUE_ITEM

WORK_QUEUE_TYPE