다음을 통해 공유


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]

예약되고 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

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.Unused

사용되지 않습니다.

Alignment.Alignment[2]

AVStream에서 내부용으로 예약됩니다. 미니드라이버가 이 멤버를 조작해서는 안 됩니다.

설명

자세한 내용은 KS 이벤트를 참조하세요.

요구 사항

요구 사항
헤더 ks.h(Ks.h 포함)

추가 정보

KDPC

KSEVENT

KsIncrementCountedWorker

KsRegisterWorker

WORK_QUEUE_ITEM

WORK_QUEUE_TYPE