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


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

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

Синтаксис

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

Параметры

[in] Filter

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

[in, optional] EventSet

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

[in] EventId

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

[in] DataSize

Размер данных в байтах.

[in] Data

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

[in, optional] CallBack

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

[in, optional] CallBackContext

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

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

Никакой

Замечания

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

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

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

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

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

  • обратный вызовNULL или авторизует совпадение

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

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

AVStream передает содержимое параметра KsFilterErateEvents подпрограммы 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

KsGenerateEvents

KsPinGenerateEvents