Функция 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).
- Закрепление — это исходный контакт.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версиях. |
Целевая платформа | Универсальное |
Верхняя часть | ks.h (включая Ks.h) |
Библиотека | Ks.lib |
IRQL | PASSIVE_LEVEL |
См. также раздел
KsPinGetConnectedFilterInterface