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