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 を含む)

こちらもご覧ください

KDPC

KSEVENT

KsIncrementCountedWorker

KsRegisterWorker

WORK_QUEUE_ITEM

WORK_QUEUE_TYPE