Estructura KSEVENTDATA (ks.h)

Los clientes de streaming de kernel envían la estructura KSEVENTDATA al controlador de clase para especificar un método de notificación.

Sintaxis

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;

Miembros

NotificationType

Contiene marcas que indican qué tipo de notificación se debe realizar. En la tabla siguiente se enumeran todos los valores posibles para el miembro NotificationType.

Marca NotificationType Descripción
KSEVENTF_EVENT_HANDLE Indica que se pasa un identificador de objeto de notificación o sincronización win32. The KSEVENTDATA. El elemento EventHandle.Event contiene el identificador.
KSEVENTF_SEMAPHORE_HANDLE Indica que se pasa un identificador de semáforo de Win32. The KSEVENTDATA. El elemento SemaphoreHandle.Semaphore contiene el identificador.
KSEVENTF_EVENT_OBJECT Indica que se pasa un puntero a una sincronización de kernel o a un objeto de notificación. The KSEVENTDATA. El elemento EventObject.Event contiene un puntero a este objeto. Esto solo está disponible para los clientes en modo kernel.
KSEVENTF_SEMAPHORE_OBJECT Indica que se pasa un puntero a un objeto de semáforo de kernel. The KSEVENTDATA. El elemento SemaphoreObject.Semaphore contiene un puntero a este objeto. Esto solo está disponible para los clientes en modo kernel.
KSEVENTF_DPC Indica que se pasa un puntero a una estructura DPC del kernel. The KSEVENTDATA. El elemento Dpc.Dpc contiene un puntero al DPC. Esto solo está disponible para los clientes en modo kernel.
KSEVENTF_WORKITEM Indica que se pasa un puntero a una estructura de elementos de trabajo kernel. The KSEVENTDATA. WorkItem.WorkQueueItem contiene un puntero al elemento de trabajo. Esto solo está disponible para los clientes en modo kernel.
KSEVENTF_KSWORKITEM Indica que se pasa un puntero a una estructura de elementos de trabajo de streaming de kernel. The KSEVENTDATA. KsWorkItem.WorkQueueItem contiene un puntero al elemento de trabajo y se pone en cola en un elemento de trabajo de streaming de kernel registrado anteriormente. Esto solo está disponible para los clientes en modo kernel.

EventHandle

Define la estructura EventHandle .

EventHandle.Event

Contiene un identificador de un evento de sincronización cuando se establece la marca KSEVENT_EVENT_HANDLE.

EventHandle.Reserved[2]

Reservado y establecido en cero.

SemaphoreHandle

Define la estructura SemaphoreHandle .

SemaphoreHandle.Semaphore

Contiene un identificador para un semáforo cuando se establece la marca KSEVENT_SEMAPHORE_HANDLE.

SemaphoreHandle.Reserved

Reservado y establecido en cero.

SemaphoreHandle.Adjustment

Contiene el ajuste en el semáforo cuando se libera.

EventObject

Define la estructura EventObject .

EventObject.Event

Define el evento de miembro PVOID.

EventObject.Increment

Define el incremento del miembroKPRIORITY.

EventObject.Reserved

Reservado y establecido en cero.

SemaphoreObject

Define la estructura SemaphoreObject .

SemaphoreObject.Semaphore

Define el semáforo del miembro PVOID.

SemaphoreObject.Increment

Define el incremento del miembroKPRIORITY.

SemaphoreObject.Adjustment

Define el ajuste de miembro LONG.

Dpc

Define la estructura Dpc .

Dpc.Dpc

Define el Dpc miembro PKDPC.

Dpc.ReferenceCount

Define el elemento ReferenceCount de miembro de ULONG.

Dpc.Reserved

Reservado y establecido en cero.

WorkItem

Define la estructura WorkItem .

WorkItem.WorkQueueItem

Define el PWORK_QUEUE_ITEM miembro WorkQueueItem.

WorkItem.WorkQueueType

Define el WORK_QUEUE_TYPE miembro WorkQueueType.

WorkItem.Reserved

Reservado y establecido en cero.

KsWorkItem

Define la estructura KsWorkItem .

KsWorkItem.WorkQueueItem

Define el PWORK_QUEUE_ITEM miembro WorkQueueItem.

KsWorkItem.KsWorkerObject

Define el miembro PKSWORKERKsWorkerObject.

KsWorkItem.Reserved

Reservado para uso futuro.

Alignment

Define la estructura Alignment .

Alignment.Unused

No se usa.

Alignment.Alignment[2]

Reservado para uso interno de AVStream. Los minidrivers no deben manipular este miembro.

Comentarios

Para obtener más información, vea KS Events.

Requisitos

Requisito Valor
Header ks.h (incluye Ks.h)

Consulte también

KDPC

KSEVENT

KsIncrementCountedWorker

KsRegisterWorker

WORK_QUEUE_ITEM

WORK_QUEUE_TYPE