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

Функция KsPinGetConnectedPinInterface запрашивает контакт, к которому подключен контакт , для интерфейса в стиле COM.

Синтаксис

KSDDKAPI NTSTATUS KsPinGetConnectedPinInterface(
  [in]  PKSPIN     Pin,
  [in]  const GUID *InterfaceId,
  [out] PVOID      *Interface
);

Параметры

[in] Pin

Указатель на структуру KSPIN . AVStream запрашивает контакт, подключенный к закреплению , для запрошенного интерфейса.

[in] InterfaceId

Указатель на GUID, указывающий тип интерфейса, который требуется получить. Для этого интерфейса автоматически выполняется вызов QueryInterface .

[out] Interface

Указатель на указатель, который AVStream устанавливает на расположение COM-интерфейса.

Возвращаемое значение

KsPinGetConnectedPinInterface возвращает STATUS_SUCCESS или STATUS_NOINTERFACE. Этот процесс описан ниже.

Комментарии

Интерфейс имеет соответствующее количество ссылок и должен быть освобожден вызывающим объектом, как в COM.

Эта подпрограмма возвращает STATUS_SUCCESS, если интерфейс существует на подключенном контакте или в avStream thunk. Если возвращается STATUS_SUCCESS, AVStream помещает указатель интерфейса в *Interface. В противном случае подпрограмма возвращает STATUS_NOINTERFACE. Это соответствует E_NOINTERFACE COM HRESULT.

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

Чаще всего KsPinGetConnectedPinInterface используется для получения интерфейса управления для подключенного контакта. Этот интерфейс элемента управления можно использовать для вызовов свойств, методов или событий в подключенном контакте или запрашивать интерфейсы, объединенные в подключенный контакт. Если подключенный контакт является контактом AVStream; AVStream предоставляет thunking только для IKsControl и IUnknown для контактов, отличных от AVStream.

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

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

Требования

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

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

IKsControl

IKsReferenceClock

KsFilterGetOuterUnknown

KsGetOuterUnknown

KsPinGetConnectedFilterInterface

KsPinGetReferenceClockInterface

KsRegisterAggregatedClientUnknown