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