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 メンバーの Increment を定義します。
EventObject.Reserved
予約済みで、0 に設定します。
SemaphoreObject
SemaphoreObject 構造体を定義します。
SemaphoreObject.Semaphore
PVOID メンバー セマフォを定義します。
SemaphoreObject.Increment
KPRIORITY メンバーの Increment を定義します。
SemaphoreObject.Adjustment
LONG メンバーの調整を定義します。
Dpc
Dpc 構造体を定義します。
Dpc.Dpc
PKDPC メンバー Dpc を定義します。
Dpc.ReferenceCount
ULONG メンバー ReferenceCount を定義します。
Dpc.Reserved
予約済みで、0 に設定します。
WorkItem
WorkItem 構造体を定義します。
WorkItem.WorkQueueItem
PWORK_QUEUE_ITEM メンバー WorkQueueItem を定義します。
WorkItem.WorkQueueType
WORK_QUEUE_TYPE メンバー WorkQueueType を定義します。
WorkItem.Reserved
予約済みで、0 に設定します。
KsWorkItem
KsWorkItem 構造体を定義します。
KsWorkItem.WorkQueueItem
PWORK_QUEUE_ITEM メンバー WorkQueueItem を定義します。
KsWorkItem.KsWorkerObject
PKSWORKER メンバー KsWorkerObject を定義します。
KsWorkItem.Reserved
将来利用するために予約されています。
Alignment
Alignment 構造体を定義します。
Alignment.Unused
使用されていません。
Alignment.Alignment[2]
AVStream による内部使用のために予約されています。 ミニドライバーは、このメンバーを操作しないでください。
注釈
詳細については、「 KS イベント」を参照してください。
要件
要件 | 値 |
---|---|
Header | ks.h (Ks.h を含む) |