функция обратного вызова 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 вызывает функцию драйвера поставщика DMA ProviderStartDma для запуска передачи DMA. Интерфейс NetDMA может вызывать ProviderStartDma в любое время после выделения канала DMA. Интерфейс NetDMA должен вызывать ProviderStartDma после вызова ProviderAbortDma, ProviderResetChannelили ProviderAllocateDmaChannel функцию для канала DMA.
Источником передачи DMA является связанный список дескрипторов DMA. Элемент NextDescriptor структуры NET_DMA_DESCRIPTOR в параметре DescriptorVirtualAddres s содержит физический адрес следующей структуры 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. |
целевая платформа | Виндоус |
заголовка | netdma.h (include Netdma.h) |
IRQL | <= DISPATCH_LEVEL |