DMA_APPEND_HANDLER funzione di callback (netdma.h)
La funzione ProviderAppendDma aggiunge un elenco collegato di descrittori DMA all'ultimo descrittore in un canale DMA.
Sintassi
DMA_APPEND_HANDLER DmaAppendHandler;
NTSTATUS DmaAppendHandler(
[in] PVOID ProviderChannelContext,
[in] PNET_DMA_DESCRIPTOR DescriptorVirtualAddress,
[in] PHYSICAL_ADDRESS DescriptorPhysicalAddress,
[in] ULONG DescriptorCount
)
{...}
Parametri
[in] ProviderChannelContext
Puntatore che identifica l'area di contesto di un canale DMA. Il provider DMA ha restituito questo handle a NetDMA nella posizione specificata nel parametro pProviderChannelContext del parametro funzione providerAllocateDmaChannel.
[in] DescriptorVirtualAddress
Puntatore all'indirizzo virtuale della prima struttura NET_DMA_DESCRIPTOR in un elenco collegato di descrittori DMA. L'indirizzo fisico corrispondente viene specificato nel parametro DescriptorPhysicalAddress.
[in] DescriptorPhysicalAddress
Puntatore all'indirizzo fisico del primo descrittore DMA in un elenco collegato di descrittori DMA. L'indirizzo virtuale corrispondente viene specificato nel parametro DescriptorVirtualAddress.
[in] DescriptorCount
Numero di descrittori DMA in DescriptorVirtualAddress .
Valore restituito
ProviderAppendDma restituisce uno dei valori di stato seguenti:
Codice restituito | Descrizione |
---|---|
|
Operazione completata correttamente. |
|
L'operazione non è riuscita per motivi non specificati. |
Osservazioni
L'interfaccia NetDMA chiama la funzione di ProviderAppendDma di un driver del provider DMA per aggiungere un elenco collegato di descrittori DMA dopo l'ultimo descrittore in un canale DMA. L'interfaccia NetDMA può chiamare ProviderAppendDma un numero qualsiasi di volte dopo l'avvio di un trasferimento DMA. Tuttavia, l'interfaccia NetDMA deve chiamare la funzione ProviderStartDma dopo la reimpostazione o l'interruzione del canale o dopo l'allocazione del canale DMA.
Se il descrittore corrente in un trasferimento attivo è l'ultimo descrittore, il motore DMA deve rileggere l'ultimo descrittore. Il membro NextDescriptor nell'ultima struttura NET_DMA_DESCRIPTOR deve avere un nuovo indirizzo e il motore DMA deve continuare con il descrittore successivo. Se il descrittore corrente non è l'ultimo descrittore, il motore DMA può continuare l'elaborazione dei descrittori DMA senza attività aggiuntive.
NetDMA chiama ProviderAppendDma in IRQL <= DISPATCH_LEVEL.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Supportato per i driver NetDMA 2.0 in Windows Server 2008. Supportato per i driver NetDMA 1.1 in Windows Server 2008. Supportato per i driver NetDMA 1.0 in Windows Server 2008 e Windows Vista. |
piattaforma di destinazione | Finestre |
intestazione | netdma.h (include Netdma.h) |
IRQL | <= DISPATCH_LEVEL |