Функция KsPinGetConnectedFilterInterface (ks.h)
Функция KsPinGetConnectedFilterInterface запрашивает фильтр, к которому подключен pin , чтобы получить указатель на COM-интерфейс.
Синтаксис
KSDDKAPI NTSTATUS KsPinGetConnectedFilterInterface(
[in] PKSPIN Pin,
[in] const GUID *InterfaceId,
[out] PVOID *Interface
);
Параметры
[in] Pin
Указатель на структуру KSPIN . Фильтр, к которому прикреплен этот пин-код, запрашивается для запрошенного интерфейса.
[in] InterfaceId
Указатель на GUID, представляющий идентификатор интерфейса, который требуется получить. Для этого интерфейса автоматически выполняется вызов QueryInterface .
[out] Interface
Указатель на PVOID. Как и в COM, полученный указатель интерфейса помещается в *Интерфейс. Этот интерфейс имеет соответствующее число ссылок и должен быть освобожден вызывающим объектом, как в COM.
Возвращаемое значение
KsPinGetConnectedFilterInterface возвращает STATUS_SUCCESS, если интерфейс существует в подключенном фильтре или в элементе AVStream. Если возвращается STATUS_SUCCESS, указатель интерфейса помещается в *Интерфейс. В противном случае возвращается STATUS_NOINTERFACE. Обратите внимание, что это соответствует E_NOINTERFACE COM HRESULT.
Комментарии
По умолчанию объекты поддерживают интерфейс IUnknown и интерфейс IKsControl . Если фильтр и подключенный контакт являются объектами AVStream, запрос и возвращенный указатель интерфейса являются прямыми вызовами другого драйвера. Однако если подключенные контакты и фильтр не принадлежат драйверу AVStream, создается thunk, который обеспечивает поддержку IKsControl через синхронные вызовы драйвера, содержащего фильтр, с помощью IoCallDriver.
Чаще всего KsPinGetConnectedFilterInterface используется для получения интерфейса управления для фильтра, к которому подключается Pin . Этот интерфейс элемента управления затем можно использовать для вызовов свойств, методов или событий в подключенном контакте или запрашивать интерфейсы, объединенные в подключенный фильтр. (Если подключенный фильтр является фильтром AVStream; AVStream предоставляет thunking только для IKsControl и IUnknown для фильтров, не относящихся к AVStream.
Thunk создается только в том случае, если pin является исходным; Таким образом, вызовы работают только в том случае, если выполняется одно или несколько из следующих значений:
- Соединение выполняется внутри AVStream (контакт подключенного контакта является контактом AVStream).
- Закрепление — это исходный контакт.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версий. |
Целевая платформа | Универсальное |
Верхняя часть | ks.h (включая Ks.h) |
Библиотека | Ks.lib |
IRQL | PASSIVE_LEVEL |