Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция 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 вызывает функцию драйвера поставщика DMA ProviderAppendDma, чтобы добавить связанный список дескрипторов 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. |
| целевая платформа | Виндоус |
| заголовка | netdma.h (include Netdma.h) |
| IRQL | <= DISPATCH_LEVEL |