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

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

Синтаксис

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

Параметры

[in] Pin

Указатель на структуру KSPIN , в которой создаются события.

[in, optional] EventSet

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

[in] EventId

Идентификатор события, с которым нужно сопоставить, чтобы определить, какие события следует создать.

[in] DataSize

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

[in, optional] Data

Указатель на буфер данных. Укажите, создает ли событие данных.

[in, optional] CallBack

Указатель на функцию, указанную вызывающим объектом, которая вызывается для определения того, должно ли быть создано данное событие. Если значение РАВНО NULL, проверка обратного вызова не выполняется, чтобы определить, следует ли создавать событие (используются только *EventSet *и EventId ). Прототип выглядит следующим образом:

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

KsPinGenerateEvents передает параметр CallBackContext без изменений в качестве параметра Context для обратного вызова. Функция обратного вызова возвращает значение TRUE , если необходимо создать EventEntry . В противном случае возвращается значение FALSE.

[in, optional] CallBackContext

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

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

None

Remarks

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

Это встроенный вызов функции KsGenerateEvents, который выполняет необходимое преобразование типов. Мини-драйверы обычно должны вызывать эту версию вместо прямого вызова KsGenerateEvents.

Событие создается при выполнении следующих трех условий:

  • Событие присутствует в *списке событий *Pin, а *EventId *соответствует идентификатору события.

  • EventSet соответствует заданному идентификатору GUID события или имеет значение NULL.

  • *CallBack *имеет значение NULL или авторизует совпадение.

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

Требования

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

См. также раздел

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsGenerateEvents