Partager via


Interface IDmaChannel (portcls.h)

L’interface IDmaChannel fournit une abstraction d’un canal DMA et de ses paramètres d’utilisation et de mémoire tampon DMA associés. Un pilote de port WaveCyclique ou WavePci implémente cette interface et l’expose au pilote miniport WaveCyclique ou WavePci. Le pilote miniport obtient une référence à l’implémentation d’un IDmaChannel objet par le pilote de port en appelant l’une des méthodes NewXxxDmaChannel du pilote de port :

IPortWavePci ::NewMasterDmaChannel

IPortWaveCyclique ::NewMasterDmaChannel

IPortWaveCyclique ::NewSlaveDmaChannel

Un pilote miniport peut également implémenter sa propre IDmaChannel interface s’il nécessite des fonctionnalités qui ne sont pas dans l’implémentation par défaut du pilote de port. Pour plus d’informations à ce sujet, consultez Filtres d’ondes. Lorsque le pilote de port appelle la méthode NewStream du pilote miniport (par exemple, IMiniportWaveCyclique ::NewStream), la méthode génère l’objet du IDmaChannel pilote miniport vers le pilote de port. IDmaChannel hérite de l’interface IUnknown .

L’implémentation actuelle de l’interface IDmaChannel dans Portcls.sys n’est pas multithread-safe, car elle ne synchronise pas en interne l’accès aux données partagées. En règle générale, un thread de pilote unique appelle les méthodes d’un IDmaChannel objet . Dans ce cas, il n’existe aucun risque que deux appels de méthode accèdent simultanément aux mêmes données. Toutefois, si plusieurs threads peuvent potentiellement appeler les méthodes d’un IDmaChannel objet en même temps, l’enregistreur de pilotes doit synchroniser les appels de méthode pour empêcher l’altération des données internes.

Pour plus d’informations, consultez Objets de canal DMA.

Notes

Microsoft prend en charge un environnement diversifié et inclusif. Cet article contient des références à la terminologie que le guide de style Microsoft pour la communication sans préjugés reconnaît comme une exclusion. Le mot ou l’expression est utilisé dans cet article à des fins de cohérence, car il apparaît actuellement dans le logiciel. Lorsque le logiciel est mis à jour pour supprimer la langue, cet article est mis à jour pour être aligné.

Héritage

L’interface IDmaChannel hérite de l’interface IUnknown.

Méthodes

L’interface IDmaChannel a ces méthodes.

 
IDmaChannel ::AllocateBuffer

La méthode AllocateBuffer alloue une mémoire tampon commune accessible par le pilote de port et le matériel DMA.
IDmaChannel ::AllocatedBufferSize

La méthode AllocatedBufferSize retourne la taille de la mémoire tampon allouée.
IDmaChannel ::BufferSize

La méthode BufferSize retourne la taille en octets de la mémoire tampon de données du canal DMA.
IDmaChannel ::CopyFrom

La méthode CopyFrom copie des exemples de données de la mémoire tampon commune du canal DMA vers la mémoire tampon de destination spécifiée.
IDmaChannel ::CopyTo

La méthode CopyTo copie des exemples de données dans la mémoire tampon commune du canal DMA à partir de la mémoire tampon source spécifiée.
IDmaChannel ::FreeBuffer

La méthode FreeBuffer libère la mémoire tampon allouée par l’appel précédent à IDmaChannel ::AllocateBuffer.
IDmaChannel ::GetAdapterObject

La méthode GetAdapterObject retourne l’objet adaptateur matériel du canal DMA.
IDmaChannel ::MaximumBufferSize

La méthode MaximumBufferSize retourne la taille en octets de la plus grande mémoire tampon que cet objet de canal DMA est configuré pour prendre en charge.
IDmaChannel ::P hysicalAddress

La méthode PhysicalAddress retourne l’adresse physique de la mémoire tampon allouée.
IDmaChannel ::SetBufferSize

La méthode SetBufferSize définit la taille actuelle de la mémoire tampon du canal DMA.
IDmaChannel ::SystemAddress

La méthode SystemAddress retourne l’adresse système de la mémoire tampon allouée.
IDmaChannel ::TransferCount

La méthode TransferCount retourne la taille en octets de la mémoire tampon en cours de transfert par un objet DMA subordonné.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête portcls.h