Freigeben über


IPortWaveCyclic::NewSlaveDmaChannel-Methode (portcls.h)

Die NewSlaveDmaChannel-Methode erstellt eine neue Instanz 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, nichtNULL- Zeigerwert 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 keine Aggregation 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 ResourceList IResourceList::FindxxxEntry-Methode.

[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, TypeCoder TypeF.

Rückgabewert

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

Bemerkungen

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.

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

Ein WaveCyclic-Gerät, das keine DMA-Hardwarefunktionen bietet, wird als untergeordnetes Gerätbezeichnet. Im Gegensatz dazu verfügt ein Mastergerät über integrierte DMA-Hardware für busmastering. Ein untergeordnetes Gerät muss sich auf den DMA-Systemcontroller verlassen, um alle erforderlichen Datenübertragungen durchzuführen. Die NewSlaveDmaChannel-Methode erstellt ein DMA-Kanalobjekt für ein untergeordnetes Gerät. Rufen Sie zum Erstellen eines DMA-Kanalobjekts für ein Mastergerät stattdessen die IPortWaveCyclic::NewMasterDmaChannel-Methode auf. Der sb16-Beispielaudiotreiber 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, OuterUnknownund ResourceList Parameter folgen den Referenzzählungskonventionen für COM-Objekte.

Anforderungen

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

Siehe auch

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic::NewMasterDmaChannel

IResourceList-