Structure KSEVENTDATA (ks.h)

Les clients de streaming du noyau envoient la structure KSEVENTDATA au pilote de classe pour spécifier une méthode de notification.

Syntaxe

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;

Membres

NotificationType

Contient des indicateurs indiquant le type de notification à effectuer. Le tableau suivant répertorie toutes les valeurs possibles pour le membre NotificationType.

Indicateur NotificationType Description
KSEVENTF_EVENT_HANDLE Indique qu’un handle d’objet de synchronisation ou de notification Win32 est passé. The KSEVENTDATA. L’élément EventHandle.Event contient le handle.
KSEVENTF_SEMAPHORE_HANDLE Indique qu’un handle de sémaphore Win32 est passé. The KSEVENTDATA. L’élément SemaphoreHandle.Semaphore contient le handle.
KSEVENTF_EVENT_OBJECT Indique qu’un pointeur vers un objet de synchronisation ou de notification de noyau est passé. The KSEVENTDATA. L’élément EventObject.Event contient un pointeur vers cet objet. Cette option est disponible uniquement pour les clients en mode noyau.
KSEVENTF_SEMAPHORE_OBJECT Indique qu’un pointeur vers un objet de sémaphore de noyau est passé. The KSEVENTDATA. L’élément SemaphoreObject.Semaphore contient un pointeur vers cet objet. Cette option est disponible uniquement pour les clients en mode noyau.
KSEVENTF_DPC Indique qu’un pointeur vers une structure DPC du noyau est passé. The KSEVENTDATA. L’élément Dpc.Dpc contient un pointeur vers la DPC. Cette option est disponible uniquement pour les clients en mode noyau.
KSEVENTF_WORKITEM Indique qu’un pointeur vers une structure d’élément de travail du noyau est passé. The KSEVENTDATA. WorkItem.WorkQueueItem contient un pointeur vers l’élément de travail. Cette option est disponible uniquement pour les clients en mode noyau.
KSEVENTF_KSWORKITEM Indique qu’un pointeur vers une structure d’élément de travail de streaming de noyau est transmis. The KSEVENTDATA. KsWorkItem.WorkQueueItem contient un pointeur vers l’élément de travail et est mis en file d’attente vers un élément de travail de streaming de noyau précédemment inscrit. Cette option est disponible uniquement pour les clients en mode noyau.

EventHandle

Définit la structure EventHandle .

EventHandle.Event

Contient un handle pour un événement de synchronisation lorsque l’indicateur KSEVENT_EVENT_HANDLE est défini.

EventHandle.Reserved[2]

Réservé et défini sur zéro.

SemaphoreHandle

Définit la structure SemaphoreHandle .

SemaphoreHandle.Semaphore

Contient un handle vers un sémaphore lorsque l’indicateur KSEVENT_SEMAPHORE_HANDLE est défini.

SemaphoreHandle.Reserved

Réservé et défini sur zéro.

SemaphoreHandle.Adjustment

Contient l’ajustement du sémaphore lors de sa libération.

EventObject

Définit la structure EventObject .

EventObject.Event

Définit l’événement de membre PVOID.

EventObject.Increment

Définit l’incrémentdu membre KPRIORITY.

EventObject.Reserved

Réservé et défini sur zéro.

SemaphoreObject

Définit la structure SemaphoreObject .

SemaphoreObject.Semaphore

Définit le sémaphore du membre PVOID.

SemaphoreObject.Increment

Définit l’incrémentdu membre KPRIORITY.

SemaphoreObject.Adjustment

Définit le réglage du membre LONG.

Dpc

Définit la structure Dpc .

Dpc.Dpc

Définit le Dpc du membre PKDPC.

Dpc.ReferenceCount

Définit le membre ULONG ReferenceCount.

Dpc.Reserved

Réservé et défini sur zéro.

WorkItem

Définit la structure WorkItem .

WorkItem.WorkQueueItem

Définit l’PWORK_QUEUE_ITEM membre WorkQueueItem.

WorkItem.WorkQueueType

Définit le WORK_QUEUE_TYPE membre WorkQueueType.

WorkItem.Reserved

Réservé et défini sur zéro.

KsWorkItem

Définit la structure KsWorkItem .

KsWorkItem.WorkQueueItem

Définit l’PWORK_QUEUE_ITEM membre WorkQueueItem.

KsWorkItem.KsWorkerObject

Définit le membre PKSWORKERKsWorkerObject.

KsWorkItem.Reserved

Réservé pour un usage futur.

Alignment

Définit la structure d’alignement .

Alignment.Unused

Non utilisé.

Alignment.Alignment[2]

Réservé à une utilisation interne par AVStream. Les minidrivers ne doivent pas manipuler ce membre.

Remarques

Pour plus d’informations, consultez Événements KS.

Configuration requise

Condition requise Valeur
En-tête ks.h (inclure Ks.h)

Voir aussi

KDPC

KSEVENT

KsIncrementCountedWorker

KsRegisterWorker

WORK_QUEUE_ITEM

WORK_QUEUE_TYPE