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


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

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

Синтаксис

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 без изменений в качестве параметра контекста контекста для обратного вызова. Функция обратного вызова возвращает TRUE, если необходимо создать EventEntry. В противном случае возвращается FALSE.

[in, optional] CallBackContext

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

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

Никакой

Замечания

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

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

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

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

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

  • *CallBack *— это null или авторизовать совпадение.

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

Требования

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

См. также

KSEVENT_ENTRY

KsAddEvent

KsFilterErateEvents

KsGenerateEvents