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 포함) |