Freigeben über


IPortWaveCyclic::NewMasterDmaChannel-Methode (portcls.h)

Die NewMasterDmaChannel-Methode erstellt eine neue Instanz eines Busmaster-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, 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, optional] ResourceList

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

[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. Auf (DMA_WIDTH) (-1) festgelegt.

[in] DmaSpeed

Wird nicht verwendet. Festgelegt auf (DMA_SPEED)(-1).

Rückgabewert

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

Bemerkungen

Parameter MaximumLength, Dma32BitAddresses, Dma64BitAddresses, DmaWidthund DmaSpeed sind in der Bedeutung den Elementen der DEVICE_DESCRIPTION Struktur mit denselben Namen.

Ein WaveCyclic-Gerät mit integrierter Busmaster-DMA-Hardware wird als Mastergerätbezeichnet. Im Gegensatz dazu fehlt ein untergeordnetes Gerät an DMA-Hardware und muss sich auf den DMA-Systemcontroller verlassen, um alle erforderlichen Datenübertragungen durchzuführen. Die NewMasterDmaChannel-Methode erstellt ein DMA-Kanalobjekt für ein Mastergerät. Rufen Sie zum Erstellen eines DMA-Kanalobjekts für ein untergeordnetes Gerät stattdessen die IPortWaveCyclic::NewSlaveDmaChannel-Methode auf. 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.

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.

Anforderungen

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

Siehe auch

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic::NewSlaveDmaChannel

IResourceList-