Поделиться через


Функция KsGenerateEvents (ks.h)

Функция KsGenerateEvents создает события указанного типа, присутствующих в списке событий объекта объекта.

Синтаксис

void KsGenerateEvents(
  [in]           PVOID                      Object,
  [in, optional] const GUID                 *EventSet,
  [in]           ULONG                      EventId,
  [in]           ULONG                      DataSize,
  [in, optional] PVOID                      Data,
  [in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
  [in, optional] PVOID                      CallBackContext
);

Параметры

[in] Object

Объект, на котором нужно создать события. Это может быть фильтр AVStream или закрепленный объект.

[in, optional] EventSet

Идентификатор GUID набора событий для сопоставления, чтобы определить, какие события необходимо создать. Если этот параметр значение NULL, то для определения событий сопоставления идентификатор GUID не учитывается.

[in] EventId

Идентификатор события, соответствующий определению того, какие события необходимо создать.

[in] DataSize

Размер в байтах данных, с помощью которых создается событие данных.

[in, optional] Data

Указатель на буфер данных для включения в уведомление о событии. Если драйверу не нужно передавать дополнительные сведения с помощью уведомления, задайте для этого необязательного параметра значение NULL.

[in, optional] CallBack

Указатель на вызывающую функцию, которая вызывается для определения того, следует ли создать данное событие. Если это значение NULL, проверка обратного вызова не выполняется, чтобы определить, следует ли создать событие (используются только события *EventSet *и EventId).

[in, optional] CallBackContext

Указатель на заданный вызывающим контекстом, который передается функции обратного вызова CallBack.

Возвращаемое значение

Никакой

Замечания

При вызове этой функции мини-driver должен размещать данных и CallBackContext в заблокированном сегменте данных, отличном от страниц. Кроме того, обратите внимание, что обратного вызова выполняется в DISPATCH_LEVEL. Функция обратного вызова должна находиться в заблокированном сегменте и должна быть готова к выполнению в IRQL = DISPATCH_LEVEL. Обратите внимание, что в DX8 существует дополнительная проблема только: Набор событий должен находиться в заблокированном сегменте данных.

Мини-drivers обычно не вызывают эту функцию напрямую и вместо этого используют одну из версий, которые выполняют соответствующую приведение: KsFiltererateEvents или KsPinGenerateEvents.

Событие создается, если он присутствует в списке событий *Object и *EventId *соответствует идентификатору события, EventSet совпадает с заданным идентификатором GUID события или NULL, а *CallBack *NULL или авторизует совпадение.

callBack — это обратный вызов, указанный вызывающим абонентом, используемый для дополнительного определения соответствия. Он прототипируется следующим образом:

BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);

AVStream передает содержимое параметра KsGenerateEvents подпрограммы CallBackContext в параметре контекст а обратного вызова. EventEntry — это указатель на структуру KSEVENT_ENTRY, указывающую событие, которое будет создано. Функция обратного вызова должна возвращать TRUE, если это событие должно быть создано.

Дополнительные сведения см. в обработке событий в AVStream и событиях KS.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Microsoft Windows XP и более поздних операционных системах и версиях DirectX 8.0 и более поздних версий DirectX.
целевая платформа Всеобщий
заголовка ks.h (include Ks.h)
библиотеки Ks.lib
IRQL <=DISPATCH_LEVEL

См. также

KSEVENT_ENTRY

KsAddEvent

KsFilterErateEvents

KsPinGenerateEvents