共用方式為


NET_DMA_CHANNEL_PARAMETERS結構 (netdma.h)

注意Windows 8 和更新版本不支援 NetDMA 介面。
 
NET_DMA_CHANNEL_PARAMETERS 結構會指定 DMA 提供者驅動程式應該用來設定 DMA 通道的組態參數。

語法

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;

成員

Revision

這個結構的修訂編號。

針對 Windows 7 和 Windows Server 2008 R2 和更新版本,請將此成員設定為 NET_DMA_CHANNEL_PARAMETERS_REVISION_2

若為 Windows Vista 和 Windows Server 2008,請將此成員設定為 NET_DMA_CHANNEL_PARAMETERS_REVISION_1

Size

這個結構的大小,以位元組為單位。 將此成員設定為 sizeof (NET_DMA_CHANNEL_PARAMETERS) 。

Flags

定義 DMA 通道屬性之旗標的一組位。 將此成員設定為零。 目前沒有定義旗標。

CompletionVirtualAddress

DMA 引擎可以寫入 DMA 傳輸完成狀態的記憶體位置虛擬位址。 此虛擬位址與 中指定的實體地址相關聯
CompletionPhysicalAddress 成員。

CompletionPhysicalAddress

DMA 引擎可以寫入 DMA 傳輸完成狀態的記憶體位置實體位址。 如果未在 NET_DMA_DESCRIPTOR 結構的 ControlFlags 成員中設定NET_DMA_STATUS_UPDATE_ON_COMPLETION旗標,則不會使用 CompletionPhysicalAddress 否則,在指定位址的完成狀態值是最近 DMA 引擎處理之實體位址的 64 位寬組合,以及其他狀態資訊。

DMA 描述元的實體地址必須對齊 64 位界限。 因此,位址的下六位可供其他資訊使用。 DMA 引擎會使用位 OR 作業,將下列狀態值與描述元地址結合:

意義
NetDmaTransferStatusActive
最新 DMA 描述項的 DMA 傳輸已完成,且沒有錯誤,而 DMA 引擎有更多描述元要處理。
NetDmaTransferStatusIdle
完成描述項連結清單中最後一個 DMA 描述元的 DMA 傳輸,而不會發生錯誤。
NetDmaTransferStatusSuspend
最近完成之 DMA 描述元的 DMA 傳輸不會發生錯誤,且 DMA 傳輸會暫停,因為 NetDMA 介面稱為 ProviderSuspendDma 函式。 DMA 引擎會在 NetDMA 介面呼叫 ProviderResumeDma 函式之後重新啟動傳輸。
NetDmaTransferStatusHalted
最近 DMA 傳輸的 DMA 傳輸因為錯誤而中止,或是因為 NetDMA 介面稱為 ProviderAbortDma 函式。
NetDmaTransferStatusArmed
第一個描述元的 DMA 傳輸尚未完成,且已完成的描述元地址無效。

ProcessorAffinityMask

位圖,表示可用於這個 DMA 通道的 CPU。 ProcessorAffinityMask 中的每個位都會識別 CPU。 例如,設定位 0 表示可以使用 CPU 0、設定位 1 表示可以使用 CPU 1 等等。

ChannelPriority

DMA 信道優先順序值,代表與相同 DMA 引擎上其他 DMA 通道相對的 DMA 通道優先順序。 優先順序較低的設定表示優先順序較低的 DMA 通道。 如果此值表示優先順序高於硬體支援,則應該使用硬體支援的最高值。 Windows Vista NetDMA 介面會將這個成員設定為零。

CpuNumber

與 DMA 通道相關聯的 CPU 編號。 DMA 提供者驅動程式會在從 傳回之前設定值
ProviderAllocateDmaChannel 函式。 DMA 引擎會使用此 CPU 來中斷與 DMA 通道相關聯的 DPC。 如果 DMA 引擎和電腦設定支援 MSI-X,除非指定的 CPU 沒有 MSI-X 中斷可用,否則中斷也應該與指定的 CPU 編號相關聯。

ProcessorAffinityMaskEx

此 DMA 通道可以與這個 DMA 通道相關聯的 CPU 組號和點陣圖。

備註

使用 DMA 通道之前,NetDMA 介面會呼叫
DMA 提供者驅動程式的 ProviderAllocateDmaChannel 函式,用來配置和初始化 DMA 通道。

NetDMA 介面會在 ProviderAllocateDmaChannelChannelParameters 參數提供NET_DMA_CHANNEL_PARAMETERS結構。

規格需求

需求
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
標頭 netdma.h (包括 Netdma.h)

另請參閱

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma