Freigeben über


DMA_APPEND_HANDLER Rückruffunktion (netdma.h)

Hinweis Die NetDMA-Schnittstelle wird in Windows 8 und höher nicht unterstützt.

Die ProviderAppendDma--Funktion fügt eine verknüpfte Liste der DMA-Deskriptoren an den letzten Deskriptor in einem DMA-Kanal an.

Syntax

DMA_APPEND_HANDLER DmaAppendHandler;

NTSTATUS DmaAppendHandler(
  [in] PVOID ProviderChannelContext,
  [in] PNET_DMA_DESCRIPTOR DescriptorVirtualAddress,
  [in] PHYSICAL_ADDRESS DescriptorPhysicalAddress,
  [in] ULONG DescriptorCount
)
{...}

Parameter

[in] ProviderChannelContext

Ein Zeiger, der den Kontextbereich eines DMA-Kanals identifiziert. Der DMA-Anbieter hat dieses Handle an netDMA an dem Speicherort zurückgegeben, der im pProviderChannelContext Parameter des ProviderAllocateDmaChannel Funktion.

[in] DescriptorVirtualAddress

Ein Zeiger auf die virtuelle Adresse der ersten NET_DMA_DESCRIPTOR Struktur in einer verknüpften Liste der DMA-Deskriptoren. Die entsprechende physische Adresse wird an der DescriptorPhysicalAddress Parameter angegeben.

[in] DescriptorPhysicalAddress

Ein Zeiger auf die physische Adresse des ersten DMA-Deskriptors in einer verknüpften Liste von DMA-Deskriptoren. Die entsprechende virtuelle Adresse wird an der DescriptorVirtualAddress Parameter angegeben.

[in] DescriptorCount

Die Anzahl der DMA-Deskriptoren bei DescriptorVirtualAddress .

Hinweis NetDMA-Anbietertreiber vor NetDMA, Version 2.0, den DescriptorCount-Parameter ignorieren können. Für NetDMA 2.0 und höhere Versionen ist dieser Parameter die Anzahl der Deskriptoren im DMA-Vorgang.
 

Rückgabewert

ProviderAppendDma gibt einen der folgenden Statuswerte zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Vorgang wurde erfolgreich abgeschlossen.
STATUS_UNSUCCESSFUL
Der Vorgang ist aus nicht angegebenen Gründen fehlgeschlagen.

Bemerkungen

Die NetDMA-Schnittstelle ruft die ProviderAppendDma-Funktion eines DMA-Anbietertreibers auf, um eine verknüpfte Liste der DMA-Deskriptoren nach dem letzten Deskriptor in einem DMA-Kanal anzufügen. Die NetDMA-Schnittstelle kann ProviderAppendDma beliebig oft aufrufen, nachdem eine DMA-Übertragung gestartet wurde. Die NetDMA-Schnittstelle muss jedoch die ProviderStartDma--Funktion aufrufen, nachdem ein Kanal zurückgesetzt oder abgebrochen wurde, oder nachdem der DMA-Kanal zuerst zugewiesen wurde.

Hinweis In NetDMA 2.0 und höheren Versionen ist die verknüpfte Liste der Deskriptoren nicht NULL-beendet. Der NextDescriptor Member in der letzten Beschreibung in der verknüpften Liste gibt die physische Adresse der NET_DMA_DESCRIPTOR Struktur an, die im nachfolgenden Aufruf der ProviderAppendDma--Funktion verwendet wird. Ein NetDMA 2.0-Anbietertreiber kann die Adresse in NextDescriptor- zwischenspeichern und diese Adresse als Anfang der verknüpften Liste für den nächsten Anfügevorgang verwenden.
 
Die NetDMA-Schnittstelle legt den NextDescriptor Member des letzten Deskriptors auf den Anfang der neuen Deskriptorenkette fest, bevor ProviderAppendDmaaufgerufen wird.

Wenn der aktuelle Deskriptor in einer aktiven Übertragung der letzte Deskriptor ist, muss das DMA-Modul den letzten Deskriptor erneut lesen. Der NextDescriptor Member in der letzten NET_DMA_DESCRIPTOR Struktur sollte eine neue Adresse aufweisen, und das DMA-Modul sollte mit dem nächsten Deskriptor fortfahren. Wenn der aktuelle Deskriptor nicht der letzte Deskriptor ist, kann das DMA-Modul die Verarbeitung von DMA-Deskriptoren ohne zusätzliche Aufgaben fortsetzen.

NetDMA ruft ProviderAppendDma- bei IRQL-<= DISPATCH_LEVEL auf.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt für NetDMA 2.0-Treiber in Windows Server 2008. Unterstützt für NetDMA 1.1-Treiber in Windows Server 2008. Unterstützt für NetDMA 1.0-Treiber in Windows Server 2008 und Windows Vista.
Zielplattform- Fenster
Header- netdma.h (enthalten Netdma.h)
IRQL- <= DISPATCH_LEVEL

Siehe auch

NET_DMA_DESCRIPTOR

ProviderAllocateDmaChannel

ProviderStartDma-