Partager via


Fonction de rappel PFNKSPINSETDATAFORMAT (ks.h)

La routine AVStrMiniPinSetDataFormat d’un minidriver AVStream 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 des données change.

[in, optional] OldFormat

facultatif. 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 la valeur est NULL, indique qu’aucun format de données n’a été défini pour l’épingle et que la distribution de création de l’épingle n’a pas encore été effectuée. Une valeur NULL indique ici que cette routine a été appelée au moment de l’initialisation pour la vérification du format.

[in, optional] OldAttributeList

facultatif. Pointeur vers une structure KSMULTIPLE_ITEM qui stocke les attributs du format précédent.

[in] DataRange

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

[in, optional] AttributeRange

facultatif. Plage d’attributs pour le nouveau format.

Valeur retournée

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

Remarques

Dans un graphique en anneau 3, le module proxy de streaming du noyau (KsProxy) définit le format des données en fonction du format de connexion convenu ou d’un changement de format dynamique. KsProxy émet une requête KSPROPERTY_CONNECTION_DATAFORMAT qui, après une validation initiale, est traduite en cet appel de répartition au minidriver. Consultez Proxy de streaming du noyau. Pour plus d’informations, consultez Formats de données et plages de données KS et Intersections DataRange dans AVStream.

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

Cette routine peut être appelée avant que l’épingle ne reçoive un IRP_MJ_CREATE, et les minidrivers doivent être prêts à faire face à cette situation.

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

Cette routine est facultative.

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 Desktop (Expérience utilisateur)
En-tête ks.h (inclure Ks.h)
IRQL PASSIVE_LEVEL

Voir aussi

IRP_MJ_CREATE

KSDATAFORMAT

KSDATARANGE

KSMULTIPLE_ITEM

KSPIN

KSPIN_DISPATCH