DMA_APPEND_HANDLER Rückruffunktion (netdma.h)
Die ProviderAppendDma-Funktion fügt eine verknüpfte Liste von DMA-Deskriptoren an den letzten Deskriptor eines DMA-Kanals 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 von DMA-Deskriptoren. Die entsprechende physische Adresse wird am 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 am DescriptorVirtualAddress-Parameter angegeben.
[in] DescriptorCount
Die Anzahl der DMA-Deskriptoren unter DescriptorVirtualAddress .
Rückgabewert
ProviderAppendDma gibt einen der folgenden status Werte zurück:
Rückgabecode | Beschreibung |
---|---|
|
Der Vorgang wurde erfolgreich abgeschlossen. |
|
Der Vorgang ist aus nicht angegebenen Gründen fehlgeschlagen. |
Hinweise
Die NetDMA-Schnittstelle ruft die ProviderAppendDma-Funktion eines DMA-Anbietertreibers auf, um eine verknüpfte Liste von 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 der 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 die DMA-Engine den letzten Deskriptor erneut lesen. Das NextDescriptor-Element in der letzten NET_DMA_DESCRIPTOR-Struktur sollte eine neue Adresse haben, und die DMA-Engine sollte mit dem nächsten Deskriptor fortfahren. Wenn der aktuelle Deskriptor nicht der letzte Deskriptor ist, kann die DMA-Engine die Verarbeitung von DMA-Deskriptoren ohne zusätzliche Aufgaben fortsetzen.
NetDMA ruft ProviderAppendDma unter IRQL <= DISPATCH_LEVEL auf.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (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 | Windows |
Kopfzeile | netdma.h (include Netdma.h) |
IRQL | <= DISPATCH_LEVEL |