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) |