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 フラグ | 形容 |
---|---|
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]
予約済みで、0 に設定されます。
SemaphoreHandle
SemaphoreHandle 構造体を定義します。
SemaphoreHandle.Semaphore
KSEVENT_SEMAPHORE_HANDLE フラグが設定されている場合のセマフォへのハンドルを格納します。
SemaphoreHandle.Reserved
予約済みで、0 に設定されます。
SemaphoreHandle.Adjustment
セマフォが解放されたときのセマフォの調整を格納します。
EventObject
EventObject 構造体を定義します。
EventObject.Event
イベント の PVOID メンバー定義します。
EventObject.Increment
インクリメント KPRIORITY メンバー定義します。
EventObject.Reserved
予約済みで、0 に設定されます。
SemaphoreObject
SemaphoreObject 構造体を定義します。
SemaphoreObject.Semaphore
セマフォ PVOID メンバー定義します。
SemaphoreObject.Increment
インクリメント KPRIORITY メンバー定義します。
SemaphoreObject.Adjustment
LONG メンバー 調整を定義します。
Dpc
Dpc 構造体を定義します。
Dpc.Dpc
Dpc の PKDPC メンバー定義します。
Dpc.ReferenceCount
ReferenceCount ULONG メンバー定義します。
Dpc.Reserved
予約済みで、0 に設定されます。
WorkItem
WorkItem 構造体を定義します。
WorkItem.WorkQueueItem
WorkQueueItem PWORK_QUEUE_ITEM メンバー定義します。
WorkItem.WorkQueueType
WorkQueueType WORK_QUEUE_TYPE メンバーを定義します。
WorkItem.Reserved
予約済みで、0 に設定されます。
KsWorkItem
KsWorkItem 構造体 を定義します。
KsWorkItem.WorkQueueItem
WorkQueueItem PWORK_QUEUE_ITEM メンバー定義します。
KsWorkItem.KsWorkerObject
KsWorkerObject PKSWORKER メンバー を定義します。
KsWorkItem.Reserved
将来の使用のために予約されています。
Alignment
配置 構造体を定義します。
Alignment.Unused
使用されません。
Alignment.Alignment[2]
AVStream による内部使用のために予約されています。 ミニドライバーは、このメンバーを操作しないでください。
備考
詳細については、「KS イベント する」を参照してください。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ks.h (Ks.h を含む) |
関連項目
KDPC を する
KSEVENT を する
KsIncrementCountedWorker を する
KsRegisterWorker の