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 du pilote de port d’un objet IDmaChannel
en appelant l’une des méthodes NewXxxDmaChannel du pilote de port :
IDmaChannel
si elle nécessite des fonctionnalités qui ne se trouvent pas dans l’implémentation par défaut du pilote de port. Pour plus d’informations sur ce problème, 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 IDmaChannel
du 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 objet IDmaChannel
. Dans ce cas, il n’existe aucun risque d’appels de deux méthodes qui accèdent simultanément aux mêmes données. Toutefois, si plusieurs threads peuvent appeler les méthodes d’un objet IDmaChannel
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 d’objets de canal DMA.
Note
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 biais reconnaît comme exclusion. Le mot ou l’expression est utilisé dans cet article pour la cohérence, car il apparaît actuellement dans le logiciel. Lorsque le logiciel est mis à jour pour supprimer la langue, cet article sera mis à jour pour être aligné.
Héritage
L’interface IDmaChannel hérite de l’interface IUnknown.
Méthode
L’interface IDmaChannel possède 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 d’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é. |
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Windows |
d’en-tête | portcls.h |