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;

Member

Revision

Die Revisionsnummer dieser Struktur.

Legen Sie für Windows 7 und Windows Server 2008 R2 und höher dieses Element auf NET_DMA_CHANNEL_PARAMETERS_REVISION_2 fest.

Legen Sie für Windows Vista und Windows Server 2008 dieses Element auf NET_DMA_CHANNEL_PARAMETERS_REVISION_1 fest.

Size

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

Flags

Eine Reihe von Bits für Flags, die DMA-Kanalattribute definieren. Legen Sie dieses Element auf 0 fest. Derzeit sind keine Flags definiert.

CompletionVirtualAddress

Die virtuelle Adresse des Speicherspeicherorts, an dem die DMA-Engine den DMA-Übertragungsabschluss schreiben kann, status. Diese virtuelle Adresse ist der physischen Adresse zugeordnet, die im
CompletionPhysicalAddress-Member .

CompletionPhysicalAddress

Die physische Adresse des Speicherspeicherorts, an dem die DMA-Engine den DMA-Übertragungsabschluss status schreiben kann. Wenn das NET_DMA_STATUS_UPDATE_ON_COMPLETION-Flag im ControlFlags-Element der NET_DMA_DESCRIPTOR-Struktur nicht festgelegt ist, wird CompletionPhysicalAddress nicht verwendet. Andernfalls ist die Vervollständigung status Wert an der angegebenen Adresse eine 64-Bit-breite Kombination aus der physischen Adresse des neuesten DMA-Deskriptors, den die DMA-Engine verarbeitet hat, und zusätzlichen status Informationen.

Die physische Adresse des DMA-Deskriptors muss an 64-Bit-Grenzen ausgerichtet werden. Daher stehen die unteren sechs Bits der Adresse für andere Informationen zur Verfügung. Die DMA-Engine kombiniert die folgenden status Werte mit der Deskriptoradresse, indem sie einen bitweisen OR-Vorgang verwendet:

Wert Bedeutung
NetDmaTransferStatusActive
Die DMA-Übertragung für den neuesten DMA-Deskriptor wurde ohne Fehler abgeschlossen, und die DMA-Engine hat mehr Deskriptoren zu verarbeiten.
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 neuesten DMA-Deskriptor wurde ohne Fehler abgeschlossen, und DMA-Übertragungen werden angehalten, da die NetDMA-Schnittstelle die ProviderSuspendDma-Funktion aufgerufen hat. Die DMA-Engine startet die Übertragung neu, nachdem die NetDMA-Schnittstelle die ProviderResumeDma-Funktion aufgerufen hat.
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 bedeutet, 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 in derselben DMA-Engine darstellt. Eine Niedrigere Prioritätseinstellung gibt einen DMA-Kanal mit niedrigerer Priorität an. Wenn dieser Wert eine höhere Priorität angibt, als die Hardware unterstützt, sollte der höchste Wert verwendet werden, den die Hardware unterstützt. Die Windows Vista NetDMA-Schnittstelle legt diesen Member auf 0 fest.

CpuNumber

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

ProcessorAffinityMaskEx

Die Gruppennummer und eine Bitmap der CPUs, denen dieser DMA-Kanal zugeordnet sein könnte.

Hinweise

Bevor Sie einen DMA-Kanal verwenden, ruft die NetDMA-Schnittstelle die
ProviderAllocateDmaChannel-Funktion des DMA-Anbietertreibers zum Zuweisen und Initialisieren des DMA-Kanals.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Kopfzeile netdma.h (include Netdma.h)

Weitere Informationen

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma