DMA_APPEND_HANDLER回呼函式 (netdma.h)
ProviderAppendDma 函式會將 DMA 描述元的連結清單附加至 DMA 通道上的最後一個描述項。
語法
DMA_APPEND_HANDLER DmaAppendHandler;
NTSTATUS DmaAppendHandler(
[in] PVOID ProviderChannelContext,
[in] PNET_DMA_DESCRIPTOR DescriptorVirtualAddress,
[in] PHYSICAL_ADDRESS DescriptorPhysicalAddress,
[in] ULONG DescriptorCount
)
{...}
參數
[in] ProviderChannelContext
識別 DMA 通道內容區域的指標。 DMA 提供者在 的 pProviderChannelContext 參數中指定的位置,將此句柄傳回給 NetDMA ProviderAllocateDmaChannel 函式。
[in] DescriptorVirtualAddress
DMA 描述元連結清單中第一 個NET_DMA_DESCRIPTOR 結構的虛擬位址指標。 對應的實體位址是在 DescriptorPhysicalAddress 參數上指定。
[in] DescriptorPhysicalAddress
DMA 描述項連結清單中的第一個 DMA 描述元實體位址指標。 對應的虛擬位址是在 DescriptorVirtualAddress 參數指定。
[in] DescriptorCount
描述元VirtualAddress上的 DMA 描述項數目。
傳回值
ProviderAppendDma 會傳回下列其中一個狀態值:
傳回碼 | Description |
---|---|
|
作業已成功完成。 |
|
作業因未指定的原因而失敗。 |
備註
NetDMA 介面會呼叫 DMA 提供者驅動程式的 ProviderAppendDma 函式,在 DMA 通道上最後一個描述元之後附加 DMA 描述元的連結清單。 NetDMA 介面可以在啟動 DMA 傳輸之後呼叫 ProviderAppendDma 任何次數。 不過,NetDMA 介面必須在通道重設或中止之後,或在第一次配置 DMA 通道之後呼叫 ProviderStartDma 函式。
如果作用中傳輸中的目前描述項是最後一個描述元,DMA 引擎必須重新讀取最後一個描述元。 最後一個NET_DMA_DESCRIPTOR結構中的 NextDescriptor 成員應該有新的位址,而 DMA 引擎應該繼續下一個描述元。 如果目前的描述元不是最後一個描述元,DMA 引擎可以繼續處理 DMA 描述元,而不需要其他工作。
NetDMA 會在 IRQL <= DISPATCH_LEVEL呼叫 ProviderAppendDma。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 在 Windows Server 2008 中支援 NetDMA 2.0 驅動程式。 在 Windows Server 2008 中支援 NetDMA 1.1 驅動程式。 在 Windows Server 2008 和 Windows Vista 中支援 NetDMA 1.0 驅動程式。 |
目標平台 | Windows |
標頭 | netdma.h (包括 Netdma.h) |
IRQL | <= DISPATCH_LEVEL |