функция обратного вызова DMA_START_HANDLER (netdma.h)
в Windows 8 и более поздних версий.
Функция ProviderStartDma запускает передачу DMA по указанному каналу DMA.
Синтаксис
DMA_START_HANDLER DmaStartHandler;
NTSTATUS DmaStartHandler(
[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 .
Возвращаемое значение
ProviderStartDma возвращает одно из следующих значений состояния:
Код возврата | Описание |
---|---|
|
Операция выполнена успешно. |
|
Операция завершилась сбоем из-за нехватки ресурсов. |
|
Операция завершилась сбоем по неустановленным причинам. |
Комментарии
Интерфейс NetDMA вызывает функцию ProviderStartDma драйвера поставщика DMA для запуска передачи DMA. Интерфейс NetDMA может вызывать ProviderStartDma в любое время после выделения канала DMA. Интерфейс NetDMA должен вызывать ProviderStartDma после вызова ProviderAbortDma, ProviderResetChannel или Функция ProviderAllocateDmaChannel для канала DMA.
Источником передачи DMA является связанный список дескрипторов DMA. Элемент NextDescriptor структуры NET_DMA_DESCRIPTOR в параметре DescriptorVirtualAddress содержит физический адрес следующей структуры NET_DMA_DESCRIPTOR в связанном списке.
После того как ProviderStartDma запустит начальную передачу DMA, интерфейс NetDMA может вызвать функцию ProviderAppendDma для добавления дополнительных данных к передаче.
NetDMA вызывает ProviderStartDma по адресу 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 |