次の方法で共有


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

WORK_QUEUE_ITEM

WORK_QUEUE_TYPE