Freigeben über


IPortWaveCyclic::NewMasterDmaChannel-Methode (portcls.h)

Die NewMasterDmaChannel -Methode erstellt eine neue instance eines bus-master DMA-Kanals.

Syntax

NTSTATUS NewMasterDmaChannel(
  [out]          PDMACHANNEL   *DmaChannel,
  [in]           PUNKNOWN      OuterUnknown,
  [in, optional] PRESOURCELIST ResourceList,
  [in]           ULONG         MaximumLength,
  [in]           BOOLEAN       Dma32BitAddresses,
  [in]           BOOLEAN       Dma64BitAddresses,
  [in]           DMA_WIDTH     DmaWidth,
  [in]           DMA_SPEED     DmaSpeed
);

Parameter

[out] DmaChannel

Zeiger auf eine vom Aufrufer zugewiesene Zeigervariable, in die die Methode einen Zeiger auf das neue IDmaChannel-Objekt 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, optional] ResourceList

Zeiger auf die Ressourcenliste des Miniporttreibers, bei der es sich um ein IResourceList-Objekt handelt. Dieser Parameter ist optional und kann als NULL angegeben werden. Die NewMasterDmaChannel -Methode verwendet diesen Parameter derzeit nicht.

[in] MaximumLength

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

[in] Dma32BitAddresses

Gibt die Verwendung von 32-Bit-Adressen an.

[in] Dma64BitAddresses

Gibt die Verwendung von 64-Bit-Adressen an.

[in] DmaWidth

Wird nicht verwendet. Legen Sie auf (DMA_WIDTH)(-1) fest.

[in] DmaSpeed

Wird nicht verwendet. Auf (DMA_SPEED)(-1) festgelegt.

Rückgabewert

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

Hinweise

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

Ein WaveCyclic-Gerät mit integrierter Busmastering-DMA-Hardware wird als master-Gerät bezeichnet. Im Gegensatz dazu fehlt einem untergeordneten Gerät die DMA-Hardware und muss sich auf den DMA-Controller des Systems verlassen, um alle benötigten Datenübertragungen durchzuführen. Die NewMasterDmaChannel -Methode erstellt ein DMA-Kanalobjekt für ein master-Gerät. Um ein DMA-Kanalobjekt für ein untergeordnetes Gerät zu erstellen, rufen Sie stattdessen die IPortWaveCyclic::NewSlaveDmaChannel-Methode auf. 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.

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.

Anforderungen

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

Weitere Informationen

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic::NewSlaveDmaChannel

IResourceList