Estrutura KSEVENTDATA (ks.h)
Os clientes de streaming do 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 do Win32 está sendo passado. O KSEVENTDATA. O elemento EventHandle.Event contém o identificador. |
KSEVENTF_SEMAPHORE_HANDLE | Indica que uma alça de semáforo Win32 está sendo passada. O KSEVENTDATA. O elemento SemaphoreHandle.Semaphore contém o identificador. |
KSEVENTF_EVENT_OBJECT | Indica que um ponteiro para um objeto de sincronização ou notificação de kernel está sendo passado. O KSEVENTDATA. O elemento EventObject.Event contém um ponteiro para esse objeto. Isso só está disponível 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 só está disponível para clientes no modo kernel. |
KSEVENTF_DPC | Indica que um ponteiro para uma estrutura de DPC do kernel está sendo passado. O KSEVENTDATA. O elemento Dpc.Dpc contém um ponteiro para o DPC. Isso só está disponível 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 só está disponível 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 é enfileirado em um item de trabalho de streaming de kernel registrado anteriormente. Isso só está disponível 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 de 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 de 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 de evento do PVOID.
EventObject.Increment
Define o membro KPRIORITYIncrement.
EventObject.Reserved
Reservado e definido como zero.
SemaphoreObject
Define a estrutura SemaphoreObject.
SemaphoreObject.Semaphore
Define o membro PVOIDdo Semáforo.
SemaphoreObject.Increment
Define o membro KPRIORITYIncrement.
SemaphoreObject.Adjustment
Define o membro LONGAdjustment.
Dpc
Define a estrutura de de Dpc.
Dpc.Dpc
Define o membro PKDPCDpc.
Dpc.ReferenceCount
Define o membro ULONG ReferenceCount.
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.
Observações
Para obter mais informações, consulte de eventos KS.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | ks.h (incluir Ks.h) |