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 |