Freigeben über


IPortWaveCyclic::NewSlaveDmaChannel-Methode (portcls.h)

Die NewSlaveDmaChannel -Methode erstellt eine neue instance eines untergeordneten DMA-Kanals.

Syntax

NTSTATUS NewSlaveDmaChannel(
  [out] PDMACHANNELSLAVE *DmaChannel,
  [in]  PUNKNOWN         OuterUnknown,
  [in]  PRESOURCELIST    ResourceList,
  [in]  ULONG            DmaIndex,
  [in]  ULONG            MaximumLength,
  [in]  BOOLEAN          DemandMode,
  [in]  DMA_SPEED        DmaSpeed
);

Parameter

[out] DmaChannel

Zeiger auf eine vom Aufrufer zugewiesene Zeigervariable, in die die -Methode einen Zeiger auf die IDmaChannelSlave-Schnittstelle des neuen DMA-Kanalobjekts schreibt. Geben Sie einen gültigen Zeigerwert ohne NULL für diesen Parameter an.

[in] OuterUnknown

Zeiger auf die IUnknown-Schnittstelle eines Objekts, das das DMA-Kanalobjekt aggregieren muss. Dieser Parameter ist optional. Wenn die Aggregation nicht erforderlich ist, geben Sie diesen Parameter als NULL an.

[in] ResourceList

Zeiger auf ein IResourceList-Objekt . Diese Ressourcenliste enthält die Ressource, die den DMA-Kanal beschreibt.

[in] DmaIndex

Index in der Ressourcenliste des DMA-Kanaldeskriptors. Die Funktion verwendet diesen Wert als Aufrufparameter für die IResourceList::FindxxxEntry-Methode des ResourceList-Objekts.

[in] MaximumLength

Maximale Länge in Bytes des zyklischen DMA-Puffers, der diesem Kanal zugeordnet wird.

[in] DemandMode

Gibt an, ob das dem DMA-Kanal zugeordnete Gerät den Bedarfsmodus unterstützt.

[in] DmaSpeed

Die DMA-Geschwindigkeit kann als einer der folgenden DMA_SPEED Enumerationswerte angegeben werden: Compatible, TypeA, TypeB, TypeC oder TypeF.

Rückgabewert

NewSlaveDmaChannel gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich war. Andernfalls gibt die Methode einen entsprechenden Fehlercode zurück.

Hinweise

Hinweis

Microsoft unterstützt eine vielfältige und inklusive Umgebung. Dieser Artikel enthält Verweise auf Terminologie, die im Microsoft-Stilleitfaden für biasfreie Kommunikation als ausschließend anerkannt wird. Das Wort oder der Ausdruck wird in diesem Artikel aus Gründen der Konsistenz verwendet, da er derzeit in der Software angezeigt wird. Wenn die Software aktualisiert wird, um die Sprache zu entfernen, wird dieser Artikel entsprechend aktualisiert.

Die Parameter MaximumLength, DemandMode und DmaSpeed ähneln den Elementen der DEVICE_DESCRIPTION-Struktur mit denselben Namen.

Ein WaveCyclic-Gerät ohne DMA-Hardwarefunktionen wird als untergeordnetes Gerät bezeichnet. Im Gegensatz dazu verfügt ein master Gerät über integrierte Busmaster-DMA-Hardware. Ein untergeordnetes Gerät muss sich auf den DMA-Controller des Systems verlassen, um alle benötigten Datenübertragungen durchzuführen. Die NewSlaveDmaChannel -Methode erstellt ein DMA-Kanalobjekt für ein untergeordnetes Gerät. Um ein DMA-Kanalobjekt für ein master Gerät zu erstellen, rufen Sie stattdessen die IPortWaveCyclic::NewMasterDmaChannel-Methode auf. Der sb16-Beispiel-Audiotreiber im Microsoft Windows Driver Kit (WDK) ist ein Beispiel für einen WaveCyclic-Miniporttreiber für ein untergeordnetes Gerät. Weitere Informationen zu master und untergeordneten Geräten finden Sie unter IDmaChannel und IDmaChannelSlave.

Die Parameter DmaChannel, OuterUnknown und ResourceList folgen den Referenzzählungskonventionen für COM-Objekte.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header portcls.h (include Portcls.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic::NewMasterDmaChannel

IResourceList