Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die IDmaChannel
-Schnittstelle stellt eine Abstraktion eines DMA-Kanals und der zugehörigen DMA-Puffer- und Verwendungsparameter bereit. Ein WaveCyclic- oder WavePci-Porttreiber implementiert diese Schnittstelle und macht sie dem WaveCyclic- oder WavePci-Miniporttreiber verfügbar. Der Miniporttreiber ruft einen Verweis auf die Implementierung eines IDmaChannel
-Objekts des Porttreibers ab, indem eine der NeuenXxx--DmaChannel-Methoden des Porttreibers aufgerufen wird:
IDmaChannel
Schnittstelle implementieren, wenn funktionen erforderlich sind, die sich nicht in der Standardimplementierung des Porttreibers befinden. Weitere Informationen hierzu finden Sie unter Wellenfilter. Wenn der Porttreiber die NewStream-Methode des Miniporttreibers aufruft (z. B. IMiniportWaveCyclic::NewStream), gibt die Methode das IDmaChannel
Objekt des Miniporttreibers an den Porttreiber aus.
IDmaChannel
erbt von der IUnknown Schnittstelle.
Die aktuelle Implementierung der IDmaChannel
-Schnittstelle in Portcls.sys ist nicht multithreadsicher, da der Zugriff auf freigegebene Daten nicht intern synchronisiert wird. In der Regel ruft ein einzelner Treiberthread die Methoden eines IDmaChannel
-Objekts auf. In diesem Fall besteht kein Risiko, dass zwei Methodenaufrufe gleichzeitig auf dieselben Daten zugreifen. Wenn jedoch mehrere Threads die Methoden eines IDmaChannel
Objekts gleichzeitig aufrufen können, muss der Treiberschreiber die Methodenaufrufe synchronisieren, um interne Datenbeschädigungen zu verhindern.
Weitere Informationen finden Sie unter DMA Channel Objects.
Anmerkung
Microsoft unterstützt eine vielfältige und inklusive Umgebung. Dieser Artikel enthält Verweise auf die Terminologie, die vom Microsoft-Stilleitfaden für die biasfreie Kommunikation als Ausschluss erkannt wird. Das Wort oder der Ausdruck wird in diesem Artikel zur Konsistenz verwendet, da es derzeit in der Software angezeigt wird. Wenn die Software aktualisiert wird, um die Sprache zu entfernen, wird dieser Artikel so aktualisiert, dass er in Übereinstimmung steht.
Erbschaft
Die IDmaChannel Schnittstelle erbt von der IUnknown-Schnittstelle.
Methodik
Die IDmaChannel Schnittstelle hat diese Methoden.
IDmaChannel::AllocateBuffer Die AllocateBuffer-Methode weist einen allgemeinen Puffer zu, auf den über den Porttreiber und die DMA-Hardware zugegriffen werden kann. |
IDmaChannel::AllocatedBufferSize Die AllocatedBufferSize-Methode gibt die Größe des zugeordneten Puffers zurück. |
IDmaChannel::BufferSize Die BufferSize-Methode gibt die Größe in Byte des Datenpuffers des DMA-Kanals zurück. |
IDmaChannel::CopyFrom Die CopyFrom-Methode kopiert Beispieldaten aus dem allgemeinen Puffer des DMA-Kanals in den angegebenen Zielpuffer. |
IDmaChannel::CopyTo Die CopyTo-Methode kopiert Beispieldaten aus dem angegebenen Quellpuffer in den allgemeinen Puffer des DMA-Kanals. |
IDmaChannel::FreeBuffer Die FreeBuffer-Methode gibt den Puffer frei, der durch den vorherigen Aufruf von IDmaChannel::AllocateBuffer zugewiesen wurde. |
IDmaChannel::GetAdapterObject Die GetAdapterObject-Methode gibt das Hardwareadapterobjekt des DMA-Kanals zurück. |
IDmaChannel::MaximumBufferSize Die MaximumBufferSize-Methode gibt die Größe in Byte des größten Puffers zurück, den dieses DMA-Kanalobjekt für die Unterstützung konfiguriert ist. |
IDmaChannel::P hysicalAddress Die PhysicalAddress-Methode gibt die physische Adresse des zugeordneten Puffers zurück. |
IDmaChannel::SetBufferSize Die SetBufferSize-Methode legt die aktuelle Puffergröße des DMA-Kanals fest. |
IDmaChannel::SystemAddress Die SystemAddress-Methode gibt die Systemadresse des zugeordneten Puffers zurück. |
IDmaChannel::TransferCount Die TransferCount-Methode gibt die Größe in Byte des Puffers zurück, der derzeit von einem untergeordneten DMA-Objekt übertragen wird. |
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Fenster |
Header- | portcls.h |