DMA_APPEND_HANDLER Rückruffunktion (netdma.h)
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 .
Rückgabewert
ProviderAppendDma gibt einen der folgenden Statuswerte zurück:
Rückgabecode | Beschreibung |
---|---|
|
Der Vorgang wurde erfolgreich abgeschlossen. |
|
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.
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 |