Функция 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 (см. примечания) |