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