Condividi tramite


Struttura KSEVENTDATA (ks.h)

I client di streaming del kernel inviano la struttura KSEVENTDATA al driver di classe per specificare un metodo di notifica.

Sintassi

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;

Members

NotificationType

Contiene flag che indicano il tipo di notifica da eseguire. La tabella seguente elenca tutti i valori possibili per il membro NotificationType.

NotificationType Flag Descrizione
KSEVENTF_EVENT_HANDLE Indica che viene passato un handle di oggetti di sincronizzazione o notifica Win32. The KSEVENTDATA. L'elemento EventHandle.Event contiene l'handle.
KSEVENTF_SEMAPHORE_HANDLE Indica che viene passato un handle di semaforo Win32. The KSEVENTDATA. L'elemento SemaphoreHandle.Semaphore contiene l'handle.
KSEVENTF_EVENT_OBJECT Indica che viene passato un puntatore a una sincronizzazione del kernel o a un oggetto di notifica. The KSEVENTDATA. L'elemento EventObject.Event contiene un puntatore a questo oggetto. Questa opzione è disponibile solo per i client in modalità kernel.
KSEVENTF_SEMAPHORE_OBJECT Indica che viene passato un puntatore a un oggetto semaforo del kernel. The KSEVENTDATA. L'elemento SemaphoreObject.Semaphore contiene un puntatore a questo oggetto. Questa opzione è disponibile solo per i client in modalità kernel.
KSEVENTF_DPC Indica che viene passato un puntatore a una struttura DPC del kernel. The KSEVENTDATA. L'elemento Dpc.Dpc contiene un puntatore al DPC. Questa opzione è disponibile solo per i client in modalità kernel.
KSEVENTF_WORKITEM Indica che viene passato un puntatore a una struttura dell'elemento di lavoro del kernel. The KSEVENTDATA. WorkItem.WorkQueueItem contiene un puntatore all'elemento di lavoro. Questa opzione è disponibile solo per i client in modalità kernel.
KSEVENTF_KSWORKITEM Indica che viene passato un puntatore a una struttura dell'elemento di lavoro in streaming del kernel. The KSEVENTDATA. KsWorkItem.WorkQueueItem contiene un puntatore all'elemento di lavoro e viene accodato a un elemento di lavoro di streaming del kernel registrato in precedenza. Questa opzione è disponibile solo per i client in modalità kernel.

EventHandle

Definisce la struttura EventHandle .

EventHandle.Event

Contiene un handle per un evento di sincronizzazione quando viene impostato il flag di KSEVENT_EVENT_HANDLE.

EventHandle.Reserved[2]

Riservato e impostato su zero.

SemaphoreHandle

Definisce la struttura SemaphoreHandle .

SemaphoreHandle.Semaphore

Contiene un handle per un semaforo quando viene impostato il flag di KSEVENT_SEMAPHORE_HANDLE.

SemaphoreHandle.Reserved

Riservato e impostato su zero.

SemaphoreHandle.Adjustment

Contiene la regolazione del semaforo quando viene rilasciata.

EventObject

Definisce la struttura EventObject .

EventObject.Event

Definisce l'evento membro PVOID.

EventObject.Increment

Definisce l'incremento del membro KPRIORITY.

EventObject.Reserved

Riservato e impostato su zero.

SemaphoreObject

Definisce la struttura SemaphoreObject .

SemaphoreObject.Semaphore

Definisce il membro PVOIDSemaphore.

SemaphoreObject.Increment

Definisce l'incremento del membro KPRIORITY.

SemaphoreObject.Adjustment

Definisce la regolazione del membro LONG.

Dpc

Definisce la struttura Dpc .

Dpc.Dpc

Definisce il membro PKDPCDpc.

Dpc.ReferenceCount

Definisce il membro ULONGReferenceCount.

Dpc.Reserved

Riservato e impostato su zero.

WorkItem

Definisce la struttura WorkItem .

WorkItem.WorkQueueItem

Definisce il membro PWORK_QUEUE_ITEMWorkQueueItem.

WorkItem.WorkQueueType

Definisce il WORK_QUEUE_TYPE membro WorkQueueType.

WorkItem.Reserved

Riservato e impostato su zero.

KsWorkItem

Definisce la struttura KsWorkItem .

KsWorkItem.WorkQueueItem

Definisce il membro PWORK_QUEUE_ITEMWorkQueueItem.

KsWorkItem.KsWorkerObject

Definisce il membro PKSWORKERKsWorkerObject.

KsWorkItem.Reserved

Riservato per utilizzi futuri.

Alignment

Definisce la struttura Di allineamento .

Alignment.Unused

Non usato.

Alignment.Alignment[2]

Riservato per l'uso interno da AVStream. I minidriver non devono modificare questo membro.

Commenti

Per altre informazioni, vedere Eventi KS.

Requisiti

Requisito Valore
Intestazione ks.h (include Ks.h)

Vedi anche

KDPC

KSEVENT

KsIncrementCountedWorker

KsRegisterWorker

WORK_QUEUE_ITEM

WORK_QUEUE_TYPE