функция обратного вызова DMA_SUSPEND_HANDLER (netdma.h)
в Windows 8 и более поздних версий.
Синтаксис
DMA_SUSPEND_HANDLER DmaSuspendHandler;
NTSTATUS DmaSuspendHandler(
[in] PVOID ProviderChannelContext,
[out] PPHYSICAL_ADDRESS *pLastDescriptor
)
{...}
Параметры
[in] ProviderChannelContext
Указатель, определяющий контекстную область канала DMA. Поставщик DMA вернул этот дескриптор в NetDMA в расположении, указанном в параметре pProviderChannelContext объекта Функция ProviderAllocateDmaChannel .
[out] pLastDescriptor
Указатель на переменную, содержащую физический адрес последнего успешно обработанного дескриптора DMA. Поставщик DMA предоставляет этот адрес перед возвратом из ProviderSuspendDma.
Возвращаемое значение
ProviderSuspendDma возвращает одно из следующих значений состояния:
Код возврата | Описание |
---|---|
|
Операция выполнена успешно. |
|
Операция завершилась сбоем по неустановленным причинам. |
Комментарии
Функция ProviderSuspendDma является необязательной для поставщиков NetDMA. Интерфейс NetDMA может вызывать функцию ProviderSuspendDma , если она имеется, чтобы временно приостановить передачу DMA, которая выполняется в канале DMA.
Поставщик DMA завершает передачу текущего дескриптора DMA перед возвратом из ProviderSuspendDma. Если отчеты о состоянии завершения включены, подсистема DMA записывает состояние NetDmaTransferStatusSusSuspend в адрес, указанный в элементах CompletionVirtualAddress и CompletionPhysicalAddress в структура NET_DMA_CHANNEL_PARAMETERS .
Пока передача DMA приостановлена, интерфейс NetDMA может изменять связанный список дескрипторов DMA (например, вставлять или удалять дескрипторы).
Интерфейс NetDMA вызывает функцию ProviderResumeDma для возобновления операций DMA, приостановленных вызовом ProviderSuspendDma.
NetDMA вызывает ProviderSuspendDma по адресу IRQL <= DISPATCH_LEVEL.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается для драйверов NetDMA 1.0 в Windows Vista. |
Целевая платформа | Windows |
Header | netdma.h (включая Netdma.h) |
IRQL | <= DISPATCH_LEVEL |