NET_DMA_CHANNEL_PARAMETERS結構 (netdma.h)
語法
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 作業,將下列狀態值與描述元地址結合:
值 | 意義 |
---|---|
|
最新 DMA 描述項的 DMA 傳輸已完成,且沒有錯誤,而 DMA 引擎有更多描述元要處理。 |
|
完成描述項連結清單中最後一個 DMA 描述元的 DMA 傳輸,而不會發生錯誤。 |
|
最近完成之 DMA 描述元的 DMA 傳輸不會發生錯誤,且 DMA 傳輸會暫停,因為 NetDMA 介面稱為 ProviderSuspendDma 函式。 DMA 引擎會在 NetDMA 介面呼叫 ProviderResumeDma 函式之後重新啟動傳輸。 |
|
最近 DMA 傳輸的 DMA 傳輸因為錯誤而中止,或是因為 NetDMA 介面稱為 ProviderAbortDma 函式。 |
|
第一個描述元的 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 介面會在 ProviderAllocateDmaChannel 的 ChannelParameters 參數提供NET_DMA_CHANNEL_PARAMETERS結構。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
標頭 | netdma.h (包括 Netdma.h) |