NET_DMA_CHANNEL_PARAMETERS-Struktur (netdma.h)
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 |
---|---|
|
Die DMA-Übertragung für den neuesten DMA-Deskriptor wurde ohne Fehler abgeschlossen, und die DMA-Engine hat mehr Deskriptoren zu verarbeiten. |
|
Die DMA-Übertragung für den letzten DMA-Deskriptor in der verknüpften Liste der Deskriptoren wurde ohne Fehler abgeschlossen. |
|
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. |
|
Die DMA-Übertragung für die letzte DMA-Übertragung wurde aufgrund von Fehlern abgebrochen oder weil die NetDMA-Schnittstelle die ProviderAbortDma-Funktion aufgerufen hat. |
|
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) |