Freigeben über


NET_DMA_CHANNEL_PARAMETERS Struktur (netdma.h)

Hinweis Die NetDMA-Schnittstelle wird in Windows 8 und höher nicht unterstützt.
 
Die NET_DMA_CHANNEL_PARAMETERS-Struktur gibt die Konfigurationsparameter an, die ein DMA-Anbietertreiber zum Konfigurieren eines DMA-Kanals verwenden soll.

Syntax

typedef struct _NET_DMA_CHANNEL_PARAMETERS {
  USHORT           Revision;
  USHORT           Size;
  ULONG            Flags;
  PVOID            CompletionVirtualAddress;
  PHYSICAL_ADDRESS CompletionPhysicalAddress;
  ULONG            ProcessorAffinityMask;
  ULONG            ChannelPriority;
  ULONG            CpuNumber;
  GROUP_AFFINITY   ProcessorAffinityMaskEx;
} NET_DMA_CHANNEL_PARAMETERS, *PNET_DMA_CHANNEL_PARAMETERS;

Angehörige

Revision

Die Revisionsnummer dieser Struktur.

Legen Sie für Windows 7 und Windows Server 2008 R2 und höher dieses Mitglied auf NET_DMA_CHANNEL_PARAMETERS_REVISION_2fest.

Legen Sie für Windows Vista und Windows Server 2008 dieses Mitglied auf NET_DMA_CHANNEL_PARAMETERS_REVISION_1fest.

Size

Die Größe dieser Struktur in Byte. Legen Sie dieses Element auf sizeof(NET_DMA_CHANNEL_PARAMETERS) fest.

Flags

Eine Gruppe von Bits für Flags, die DMA-Kanalattribute definieren. Legen Sie dieses Element auf Null fest. Zurzeit sind keine Flags definiert.

CompletionVirtualAddress

Die virtuelle Adresse des Speicherorts, an dem das DMA-Modul den DMA-Übertragungsabschlussstatus schreiben kann. Diese virtuelle Adresse ist der physischen Adresse zugeordnet, die in der
CompletionPhysicalAddress Mitglied.

CompletionPhysicalAddress

Die physische Adresse des Speicherspeicherorts, an dem das DMA-Modul den DMA-Übertragungsabschlussstatus schreiben kann. Wenn das NET_DMA_STATUS_UPDATE_ON_COMPLETION Flag nicht im ControlFlags Element der NET_DMA_DESCRIPTOR Struktur festgelegt ist, wird CompletionPhysicalAddress- nicht verwendet. Andernfalls ist der Fertigstellungsstatuswert an der angegebenen Adresse eine 64-Bit-Breite Kombination der physischen Adresse des letzten DMA-Deskriptors, den das DMA-Modul verarbeitet hat, und zusätzliche Statusinformationen.

Die physische Adresse des DMA-Deskriptors muss an 64-Bit-Begrenzungen ausgerichtet werden. Daher sind die unteren sechs Bits der Adresse für weitere Informationen verfügbar. Das DMA-Modul kombiniert die folgenden Statuswerte mit der Deskriptoradresse mithilfe eines bitweisen OR-Vorgangs:

Wert Bedeutung
NetDmaTransferStatusActive
Die DMA-Übertragung für den neuesten DMA-Deskriptor wurde ohne Fehler abgeschlossen, und das DMA-Modul verfügt über mehr Zu verarbeitende Deskriptoren.
NetDmaTransferStatusIdle
Die DMA-Übertragung für den letzten DMA-Deskriptor in der verknüpften Liste der Deskriptoren wurde ohne Fehler abgeschlossen.
NetDmaTransferStatusSuspend
Die DMA-Übertragung für den letzten DMA-Deskriptor wurde ohne Fehler abgeschlossen, und DMA-Übertragungen werden angehalten, da die NetDMA-Schnittstelle die ProviderSuspendDma--Funktion aufgerufen hat. Das DMA-Modul startet die Übertragung neu, nachdem die NetDMA-Schnittstelle die ProviderResumeDma--Funktion aufruft.
NetDmaTransferStatusHalted
Die DMA-Übertragung für die letzte DMA-Übertragung wurde aufgrund von Fehlern abgebrochen oder weil die NetDMA-Schnittstelle die ProviderAbortDma- funktion aufgerufen hat.
NetDmaTransferStatusArmed
Die DMA-Übertragung für den ersten Deskriptor wurde nicht abgeschlossen, und die vollständige Deskriptoradresse ist ungültig.

ProcessorAffinityMask

Eine Bitmap, die CPUs angibt, die für die Verwendung mit diesem DMA-Kanal verfügbar sind. Jedes Bit in ProcessorAffinityMask identifiziert eine CPU. Das Festlegen von Bit 0 gibt beispielsweise an, dass CPU 0 verwendet werden kann, das Festlegen von Bit 1 angibt, dass CPU 1 verwendet werden kann usw.

ChannelPriority

Ein DMA-Kanalprioritätswert, der die Priorität für den DMA-Kanal relativ zu anderen DMA-Kanälen auf demselben DMA-Modul darstellt. Eine Einstellung mit niedrigerer Priorität gibt einen DMA-Kanal mit niedrigerer Priorität an. Wenn dieser Wert eine höhere Priorität als die Hardware unterstützt, sollte der höchste Wert verwendet werden, den die Hardware unterstützt. Die Windows Vista NetDMA-Schnittstelle legt dieses Element auf Null fest.

CpuNumber

Die CPU-Nummer, die dem DMA-Kanal zugeordnet ist. Der DMA-Anbietertreiber legt den Wert fest, bevor er aus dem
ProviderAllocateDmaChannel Funktion. Das DMA-Modul verwendet diese CPU für Unterbrechungs-DPCs, die dem DMA-Kanal zugeordnet sind. Wenn das DMA-Modul und die Computerkonfiguration MSI-X unterstützen, sollte der Interrupt auch der angegebenen CPU-Nummer zugeordnet werden, es sei denn, für die angegebene CPU ist kein MSI-X Interrupt verfügbar.

ProcessorAffinityMaskEx

Die Gruppennummer und eine Bitmap der CPUs, denen dieser DMA-Kanal zugeordnet werden kann.

Bemerkungen

Vor der Verwendung eines DMA-Kanals ruft die NetDMA-Schnittstelle die
ProviderAllocateDmaChannel Funktion des DMA-Anbietertreibers, um den DMA-Kanal zuzuweisen und zu initialisieren.

Die NetDMA-Schnittstelle stellt eine NET_DMA_CHANNEL_PARAMETERS Struktur im ChannelParameters Parameter von ProviderAllocateDmaChannel.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista
mindestens unterstützte Server- Windows Server 2008
Header- netdma.h (enthalten Netdma.h)

Siehe auch

NET_DMA_DESCRIPTOR

ProviderAbortDma-

ProviderAllocateDmaChannel

ProviderResumeDma-

ProviderSuspendDma