Partager via


KsDeviceRegisterAdapterObject, fonction (ks.h)

La fonction KsDeviceRegisterAdapterObject inscrit un objet d’adaptateur DMA avec AVStream pour effectuer des diffusions/regroupements DMA sur l’appareil spécifié. Tous les pilotes compilés pour Win64 doivent utiliser IKsDeviceFunctions ::RegisterAdapterObjectEx à la place.

Syntaxe

void KsDeviceRegisterAdapterObject(
  [in] PKSDEVICE       Device,
  [in] PADAPTER_OBJECT AdapterObject,
  [in] ULONG           MaxMappingsByteCount,
  [in] ULONG           MappingTableStride
);

Paramètres

[in] Device

Pointeur vers la structure KSDEVICE représentant l’appareil AVStream pour lequel inscrire un objet adaptateur.

[in] AdapterObject

Pointeur vers la structure DMA_ADAPTER retournée par IoGetDmaAdapter qui représente le contrôleur DMA.

[in] MaxMappingsByteCount

Ce paramètre spécifie le nombre maximal d’octets que l’appareil peut gérer pour un mappage unique. Permet à AVStream de diviser automatiquement des segments volumineux de mémoire physique contiguë en plusieurs éléments de diffusion/collecte pour les appareils qui imposent une limite de taille aux mappages individuels dans les transferts DMA. Il n’est pas garanti que les interruptions se produisent sur les limites de page.

[in] MappingTableStride

Ce paramètre spécifie le nombre d’octets requis par chaque entrée de la table de mappage. Ce doit être au moins sizeof (KSMAPPING) et peut être aussi volumineux que nécessaire.

Un espace supplémentaire peut être utilisé par le minidriver comme informations de contexte.

Valeur de retour

None

Remarques

Un minidriver qui appelle KsDeviceRegisterAdapterObject est responsable de l’acquisition préalable de l’objet adaptateur via IoGetDmaAdapter.

Notez également que si le minidriver spécifie l’indicateur KSPIN_FLAG_GENERATE_MAPPINGS pour n’importe quelle broche sur un filtre sur l’appareil, le minidriver doit appeler KsDeviceRegisterAdapterObject avant de traiter des données. Pour plus d’informations sur cet indicateur, consultez la page de référence pour KSPIN_DESCRIPTOR_EX. Consultez également AVStream DMA Services.

Si vous définissez MaxMappingByteCount sur une page physique, il n’est pas garanti que les mappages résident sur une seule page physique. En outre, comme indiqué dans la description du membre ci-dessus, la définition de MaxMappingsByteCount ne garantit pas que des interruptions se produisent sur les limites des pages. Si vous avez besoin de sauts sur les limites de page, envisagez de ne pas spécifier de limite sur les tailles de mappage ; au lieu de cela, décomposez manuellement les mappages de points/regroupements retournés en blocs alignés sur la page.

Consultez également Prise en charge de DMA dans les pilotes AVStream 64 bits.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ks.h (inclure Ks.h)
Bibliothèque Ks.lib
IRQL PASSIVE_LEVEL

Voir aussi

IoGetDmaAdapter

KSFILTER_DESCRIPTOR

KSMAPPING

KSPIN_DESCRIPTOR_EX