Partager via


Fonction de rappel PFNKSPINSETDATAFORMAT (ks.h)

Une routine de minidriver AVStream AVStrMiniPinSetDataFormat est appelée au moment de la création de l’épingle pour vérifier que le format de données précédemment convenu est acceptable pour cette structure KSPIN et une correspondance pour cette structure KSDATARANGE. Cette routine est également appelée en raison de certains types de modifications de format dynamique, par exemple l’acceptation d’une demande de propriété KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT.

Syntaxe

PFNKSPINSETDATAFORMAT Pfnkspinsetdataformat;

NTSTATUS Pfnkspinsetdataformat(
  [in]           PKSPIN Pin,
  [in, optional] PKSDATAFORMAT OldFormat,
  [in, optional] PKSMULTIPLE_ITEM OldAttributeList,
  [in]           const KSDATARANGE *DataRange,
  [in, optional] const KSATTRIBUTE_LIST *AttributeRange
)
{...}

Paramètres

[in] Pin

Pointeur vers la structure KSPIN pour laquelle le format de données change.

[in, optional] OldFormat

Optionnel. Pointeur vers une structure KSDATAFORMAT. Les minidrivers peuvent utiliser ce champ pour déterminer le format de données utilisé par l’épingle avant cet appel. Si NULL, indique qu’aucun format de données n’a été défini pour l’épingle et que le de épingle n’a pas encore été effectué. Une valeur NULL ici indique que cette routine a été appelée au moment de l’initialisation pour la vérification du format.

[in, optional] OldAttributeList

Optionnel. Pointeur vers une structure KSMULTIPLE_ITEM qui stocke les attributs pour le format précédent.

[in] DataRange

Pointeur vers une structure KSDATARANGE. Plage de données pour le nouveau format.

[in, optional] AttributeRange

Optionnel. Plage d’attributs pour le nouveau format.

Valeur de retour

Retourne STATUS_SUCCESS si épinglermembre ConnectionFormat correspond à la plage passée à cette routine. Retourne STATUS_NO_MATCH si ConnectionFormat ne correspond pas à la plage passée et que le minidriver souhaite continuer à tenter de trouver une correspondance avec une autre plage. Retournez un code d’erreur de choix si ConnectionFormat ne correspond pas à la plage passée et que le minidriver ne souhaite pas continuer à rechercher une correspondance avec une autre plage. Ne retournez pas STATUS_PENDING.

Remarques

Dans un graphique en anneau 3, le module KsProxy (Kernel Streaming Proxy) définit le format de données en fonction du format de connexion convenu ou d’une modification de format dynamique. KsProxy émet une demande de KSPROPERTY_CONNECTION_DATAFORMAT qui, après une validation initiale, est traduite dans cet appel de répartition vers le minidriver. Consultez proxy de diffusion en continu du noyau. Pour plus d’informations, consultez formats de données KS et plages de données et intersections DataRange dans AVStream.

Le minidriver spécifie l’adresse de AVStrMiniPinSetDataFormat dans le membre SetDataFormat de sa structure de KSPIN_DISPATCH.

Cette routine peut être appelée avant que la broche reçoive un IRP_MJ_CREATE, et les minidrivers doivent être prêts à traiter cette situation.

OldFormat, OldAttributeListet AttributeRange sont tous des paramètres facultatifs et peuvent être NULL.

Cette routine est facultative.

Exigences

Exigence Valeur
client minimum 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 Bureau
d’en-tête ks.h (include Ks.h)
IRQL PASSIVE_LEVEL

Voir aussi

IRP_MJ_CREATE

KSDATAFORMAT

KSDATARANGE

KSMULTIPLE_ITEM

KSPIN

KSPIN_DISPATCH