функция обратного вызова 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 вернул этот дескриптор в NetDMA в расположении, указанном в параметре pProviderChannelContext объекта Функция ProviderAllocateDmaChannel .
[in] DescriptorVirtualAddress
Указатель на виртуальный адрес первой структуры NET_DMA_DESCRIPTOR в связанном списке дескрипторов DMA. Соответствующий физический адрес указывается в параметре DescriptorPhysicalAddress .
[in] DescriptorPhysicalAddress
Указатель на физический адрес первого дескриптора DMA в связанном списке дескрипторов DMA. Соответствующий виртуальный адрес указывается в параметре DescriptorVirtualAddress .
[in] DescriptorCount
Количество дескрипторов DMA в DescriptorVirtualAddress .
Возвращаемое значение
ProviderAppendDma возвращает одно из следующих значений состояния:
Код возврата | Описание |
---|---|
|
Операция выполнена успешно. |
|
Операция завершилась сбоем по неопределенным причинам. |
Комментарии
Интерфейс NetDMA вызывает функцию ProviderAppendDma драйвера поставщика DMA, чтобы добавить связанный список дескрипторов DMA после последнего дескриптора в канале DMA. Интерфейс NetDMA может вызывать ProviderAppendDma любое количество раз после запуска передачи DMA. Однако интерфейс NetDMA должен вызывать функцию ProviderStartDma после сброса или прерывания канала либо после выделения канала DMA.
Если текущий дескриптор в активной передаче является последним дескриптором, обработчик DMA должен повторно прочитать последний дескриптор. Элемент NextDescriptor в последней NET_DMA_DESCRIPTOR структуре должен иметь новый адрес, а подсистема DMA должна продолжать работу со следующим дескрипторов. Если текущий дескриптор не является последним, обработчик DMA может продолжить обработку дескрипторов DMA без дополнительных задач.
NetDMA вызывает ProviderAppendDma по адресу IRQL <= DISPATCH_LEVEL.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается для драйверов NetDMA 2.0 в Windows Server 2008. Поддерживается для драйверов NetDMA 1.1 в Windows Server 2008. Поддерживается для драйверов NetDMA 1.0 в Windows Server 2008 и Windows Vista. |
Целевая платформа | Windows |
Header | netdma.h (включая Netdma.h) |
IRQL | <= DISPATCH_LEVEL |