Share via


KsPinGetConnectedFilterInterface, fonction (ks.h)

La fonction KsPinGetConnectedFilterInterface interroge le filtre auquel Pin est connecté afin d’obtenir un pointeur vers une interface COM.

Syntaxe

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

Paramètres

[in] Pin

Pointeur vers une structure KSPIN . Le filtre auquel cette broche est attachée est interrogé pour l’interface demandée.

[in] InterfaceId

Pointeur vers un GUID représentant l’ID d’interface que l’interface doit obtenir. Un appel QueryInterface est automatiquement effectué pour cette interface.

[out] Interface

Pointeur vers un PVOID. Comme dans COM, le pointeur d’interface résultant est déposé dans *Interface. Cette interface a un nombre de références correspondant et doit être libérée par l’appelant comme dans COM.

Valeur retournée

KsPinGetConnectedFilterInterface retourne STATUS_SUCCESS si l’interface existe sur le filtre connecté ou dans le thunk AVStream. Si STATUS_SUCCESS est retourné, le pointeur d’interface est déposé dans *Interface. Sinon, il retourne STATUS_NOINTERFACE. Notez que cela correspond au E_NOINTERFACE COM HRESULT.

Remarques

Par défaut, les objets prennent en charge l’interface IUnknown et l’interface IKsControl . Si le filtre et la broche connectée sont des objets AVStream, la requête et le pointeur d’interface retourné sont des appels directs à l’autre pilote. Toutefois, si le code pin et le filtre connectés n’appartiennent pas à un pilote AVStream, un thunk est créé pour prendre en charge IKsControl via des appels synchrones au pilote contenant le filtre, à l’aide d’IoCallDriver.

L’utilisation la plus courante de KsPinGetConnectedFilterInterface consiste à acquérir l’interface de contrôle du filtre auquel Pin est attaché. Cette interface de contrôle peut ensuite être utilisée pour les appels de propriété, de méthode ou d’événement jusqu’à la broche connectée, ou peut interroger les interfaces qui ont été agrégées sur le filtre connecté. (Si le filtre connecté est un filtre AVStream ; AVStream fournit un thunking uniquement pour IKsControl et IUnknown pour les filtres non AVStream).

Le thunk est créé uniquement si Pin est une broche source ; par conséquent, les appels fonctionnent uniquement si une ou plusieurs des conditions suivantes sont remplies :

  • La connexion est intra-AVStream (la broche connectée du code pin est une broche AVStream).
  • Pin est une broche source.
Sinon, STATUS_UNSUCCESSFUL est retourné.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Microsoft Windows XP et les systèmes d’exploitation ultérieurs et DirectX 8.0 et versions ultérieures de DirectX.
Plateforme cible Universal
En-tête ks.h (inclure Ks.h)
Bibliothèque Ks.lib
IRQL PASSIVE_LEVEL

Voir aussi

IKsControl

IKsReferenceClock

KsFilterGetOuterUnknown

KsGetOuterUnknown

KsPinGetConnectedPinInterface

KsPinGetReferenceClockInterface

KsRegisterAggregatedClientUnknown