Структура 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) |