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


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

Функция K KsPinGetConnectedFilterInterface запрашивает фильтр, к которому подключается Закрепление, чтобы получить указатель на 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, если интерфейс существует в подключенном фильтре или в thunk AVStream. Если возвращается STATUS_SUCCESS, указатель интерфейса помещается в *Интерфейс. В противном случае возвращается STATUS_NOINTERFACE. Обратите внимание, что это соответствует E_NOINTERFACE COM HRESULT.

Замечания

По умолчанию объекты поддерживают интерфейс IUnknown и интерфейс IKsControl. Если фильтр и подключенный пин-код являются объектами AVStream, запрос и возвращаемый указатель интерфейса являются прямыми вызовами другого драйвера. Однако если подключенный пин-код и фильтр не принадлежат драйверу AVStream, создается thunk, предоставляющий поддержку IKsControl с помощью синхронных вызовов драйвера, содержащего фильтр, с помощью IoCallDriver.

Наиболее распространенное использование KsPinGetConnectedFilterInterface заключается в том, чтобы получить интерфейс управления для фильтра, к которому присоединяется Закрепление. Затем этот интерфейс управления можно использовать для вызовов свойств, методов или событий до подключенного пин-кода или может запрашивать интерфейсы, которые были агрегированы в подключенный фильтр. (Если подключенный фильтр является фильтром AVStream; AVStream предоставляет thunking только для IKsControl и IUnknown для фильтров, отличных от AVStream).

Thunk создается только в том случае, если пин-код является исходным пин-кодом; Таким образом, вызовы работают только в том случае, если одно или несколько из следующих значений имеет значение true:

  • Подключение является внутри AVStream (Закреплениеподключенного пина является пин-кодом AVStream).
  • Пин-код является исходным закреплением.
В противном случае возвращается STATUS_UNSUCCESSFUL.

Требования

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

См. также

IKsControl

IKsReferenceClock

KsFilterGetOuterUnknown

KsGetOuterUnknown

KsPinGetConnectedPinInterface

KsPinGetReferenceClockInterface

KsRegisterAggregatedClientUnknown