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 :
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 |