Compartilhar via


Estrutura KSEVENTDATA (ks.h)

Os clientes de streaming de kernel enviam a estrutura KSEVENTDATA para o driver de classe para especificar um método de notificação.

Sintaxe

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;

Membros

NotificationType

Contém sinalizadores que indicam que tipo de notificação deve ser executada. A tabela a seguir lista todos os valores possíveis para o membro NotificationType.

Sinalizador NotificationType Descrição
KSEVENTF_EVENT_HANDLE Indica que um identificador de objeto de notificação ou sincronização win32 está sendo passado. O KSEVENTDATA. O elemento EventHandle.Event contém o identificador.
KSEVENTF_SEMAPHORE_HANDLE Indica que um identificador de semáforo Win32 está sendo passado. O KSEVENTDATA. O elemento SemaphoreHandle.Semaphore contém o identificador.
KSEVENTF_EVENT_OBJECT Indica que um ponteiro para uma sincronização de kernel ou objeto de notificação está sendo passado. O KSEVENTDATA. O elemento EventObject.Event contém um ponteiro para esse objeto. Isso está disponível apenas para clientes no modo kernel.
KSEVENTF_SEMAPHORE_OBJECT Indica que um ponteiro para um objeto de semáforo de kernel está sendo passado. O KSEVENTDATA. O elemento SemaphoreObject.Semaphore contém um ponteiro para esse objeto. Isso está disponível apenas para clientes no modo kernel.
KSEVENTF_DPC Indica que um ponteiro para uma estrutura DPC do kernel está sendo passado. O KSEVENTDATA. O elemento Dpc.Dpc contém um ponteiro para o DPC. Isso está disponível apenas para clientes no modo kernel.
KSEVENTF_WORKITEM Indica que um ponteiro para uma estrutura de item de trabalho do kernel está sendo passado. O KSEVENTDATA. WorkItem.WorkQueueItem contém um ponteiro para o item de trabalho. Isso está disponível apenas para clientes no modo kernel.
KSEVENTF_KSWORKITEM Indica que um ponteiro para uma estrutura de item de trabalho de streaming de kernel está sendo passado. O KSEVENTDATA. KsWorkItem.WorkQueueItem contém um ponteiro para o item de trabalho e está na fila para um item de trabalho de streaming de kernel registrado anteriormente. Isso está disponível apenas para clientes no modo kernel.

EventHandle

Define a estrutura EventHandle .

EventHandle.Event

Contém um identificador para um evento de sincronização quando o sinalizador KSEVENT_EVENT_HANDLE é definido.

EventHandle.Reserved[2]

Reservado e definido como zero.

SemaphoreHandle

Define a estrutura SemaphoreHandle .

SemaphoreHandle.Semaphore

Contém um identificador para um semáforo quando o sinalizador KSEVENT_SEMAPHORE_HANDLE é definido.

SemaphoreHandle.Reserved

Reservado e definido como zero.

SemaphoreHandle.Adjustment

Contém o ajuste ao semáforo quando ele é liberado.

EventObject

Define a estrutura EventObject .

EventObject.Event

Define o evento de membro PVOID.

EventObject.Increment

Define o incremento do membro KPRIORITY.

EventObject.Reserved

Reservado e definido como zero.

SemaphoreObject

Define a estrutura SemaphoreObject .

SemaphoreObject.Semaphore

Define o semaphore membro PVOID.

SemaphoreObject.Increment

Define o incremento do membro KPRIORITY.

SemaphoreObject.Adjustment

Define o ajuste de membro LONG.

Dpc

Define a estrutura Dpc .

Dpc.Dpc

Define o membro PKDPCDpc.

Dpc.ReferenceCount

Define o membro ULONGReferenceCount.

Dpc.Reserved

Reservado e definido como zero.

WorkItem

Define a estrutura WorkItem .

WorkItem.WorkQueueItem

Define o membro PWORK_QUEUE_ITEMWorkQueueItem.

WorkItem.WorkQueueType

Define o membro WORK_QUEUE_TYPEWorkQueueType.

WorkItem.Reserved

Reservado e definido como zero.

KsWorkItem

Define a estrutura KsWorkItem .

KsWorkItem.WorkQueueItem

Define o membro PWORK_QUEUE_ITEMWorkQueueItem.

KsWorkItem.KsWorkerObject

Define o membro PKSWORKERKsWorkerObject.

KsWorkItem.Reserved

Reservado para uso futuro.

Alignment

Define a estrutura Alinhamento .

Alignment.Unused

Não usado.

Alignment.Alignment[2]

Reservado para uso interno pelo AVStream. Os minidrivers não devem manipular esse membro.

Comentários

Para obter mais informações, consulte Eventos KS.

Requisitos

Requisito Valor
Cabeçalho ks.h (inclua Ks.h)

Confira também

KDPC

KSEVENT

KsIncrementCountedWorker

KsRegisterWorker

WORK_QUEUE_ITEM

WORK_QUEUE_TYPE