KSEVENTDATA 結構 (ks.h)
核心串流用戶端會將 KSEVENTDATA 結構傳送至類別驅動程式,以指定通知方法。
語法
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;
成員
NotificationType
包含旗標,指出應該執行哪種類型的通知。 下表列出 NotificationType 成員的所有可能值。
NotificationType 旗標 | Description |
---|---|
KSEVENTF_EVENT_HANDLE | 表示正在傳遞 Win32 同步處理或通知物件句柄。 KSEVENTDATA。EventHandle.Event 元素包含句柄。 |
KSEVENTF_SEMAPHORE_HANDLE | 表示正在傳遞 Win32 號志句柄。 KSEVENTDATA。SemaphoreHandle.Semaphore 元素包含句柄。 |
KSEVENTF_EVENT_OBJECT | 表示正在傳遞核心同步處理或通知物件的指標。 KSEVENTDATA。EventObject.Event 元素包含這個物件的指標。 這僅適用於內核模式用戶端。 |
KSEVENTF_SEMAPHORE_OBJECT | 表示正在傳遞核心號誌物件的指標。 KSEVENTDATA。SemaphoreObject.Semaphore 元素包含這個物件的指標。 這僅適用於內核模式用戶端。 |
KSEVENTF_DPC | 表示正在傳遞核心 DPC 結構的指標。 KSEVENTDATA。Dpc.Dpc 元素包含 DPC 的指標。 這僅適用於內核模式用戶端。 |
KSEVENTF_WORKITEM | 表示正在傳遞核心工作項目結構的指標。 KSEVENTDATA。WorkItem.WorkQueueItem 包含工作專案的指標。 這僅適用於內核模式用戶端。 |
KSEVENTF_KSWORKITEM | 表示正在傳遞核心串流工作項目結構的指標。 KSEVENTDATA。KsWorkItem.WorkQueueItem 包含工作專案的指標,並排入佇列至先前註冊的核心串流工作專案。 這僅適用於內核模式用戶端。 |
EventHandle
定義 EventHandle 結構。
EventHandle.Event
包含設定KSEVENT_EVENT_HANDLE旗標時的同步處理事件的句柄。
EventHandle.Reserved[2]
保留並設定為零。
SemaphoreHandle
定義 SemaphoreHandle 結構。
SemaphoreHandle.Semaphore
設定KSEVENT_SEMAPHORE_HANDLE旗標時,包含旗標的句柄。
SemaphoreHandle.Reserved
保留並設定為零。
SemaphoreHandle.Adjustment
包含放開號誌時的調整。
EventObject
定義 EventObject 結構。
EventObject.Event
定義 PVOID 成員 事件。
EventObject.Increment
定義 KPRIORITY 成員 Increment。
EventObject.Reserved
保留並設定為零。
SemaphoreObject
定義 SemaphoreObject 結構。
SemaphoreObject.Semaphore
定義 PVOID 成員 號誌。
SemaphoreObject.Increment
定義 KPRIORITY 成員 Increment。
SemaphoreObject.Adjustment
定義 LONG 成員 調整。
Dpc
定義 Dpc 結構。
Dpc.Dpc
定義 PKDPC 成員 Dpc。
Dpc.ReferenceCount
定義 ULONG 成員 ReferenceCount。
Dpc.Reserved
保留並設定為零。
WorkItem
定義 WorkItem 結構。
WorkItem.WorkQueueItem
定義 PWORK_QUEUE_ITEM 成員 WorkQueueItem。
WorkItem.WorkQueueType
定義 WORK_QUEUE_TYPE 成員 WorkQueueType。
WorkItem.Reserved
保留並設定為零。
KsWorkItem
定義 KsWorkItem 結構。
KsWorkItem.WorkQueueItem
定義 PWORK_QUEUE_ITEM 成員 WorkQueueItem。
KsWorkItem.KsWorkerObject
定義 PKSWORKER 成員 KsWorkerObject。
KsWorkItem.Reserved
保留供未來使用。
Alignment
定義 Alignment 結構。
Alignment.Unused
未使用。
Alignment.Alignment[2]
保留供AVStream內部使用。 迷你驅動程式不應該操作此成員。
備註
如需詳細資訊,請參閱 KS 事件。
規格需求
需求 | 值 |
---|---|
標頭 | ks.h (包含 Ks.h) |