Функция 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).
  • Закрепление — это исходный контакт.
В противном случае возвращается STATUS_UNSUCCESSFUL.

Требования

Требование Значение
Минимальная версия клиента Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версий.
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib
IRQL PASSIVE_LEVEL

См. также раздел

IKsControl

IKsReferenceClock

KsFilterGetOuterUnknown

KsGetOuterUnknown

KsPinGetConnectedPinInterface

KsPinGetReferenceClockInterface

KsRegisterAggregatedClientUnknown