Поделиться через


функция обратного вызова PFREE_ADAPTER_CHANNEL (wdm.h)

Подпрограмма FreeAdapterChannel освобождает системный контроллер DMA, когда драйвер завершил все операции DMA, необходимые для удовлетворения текущего IRP.

Синтаксис

PFREE_ADAPTER_CHANNEL PfreeAdapterChannel;

void PfreeAdapterChannel(
  [in] PDMA_ADAPTER DmaAdapter
)
{...}

Параметры

[in] DmaAdapter

Указатель на структуру DMA_ADAPTER, возвращаемую IoGetDmaAdapter, которая представляет адаптер master шины или контроллер DMA.

Возвращаемое значение

None

Remarks

FreeAdapterChannel не является системной подпрограммой, которую можно вызывать напрямую по имени. Эта подпрограмма может вызываться только указателем из адреса, возвращаемого в DMA_OPERATIONS структуре. Драйверы получают адрес этой подпрограммы, вызывая IoGetDmaAdapter.

После того как драйвер передал все данные и вызвал FlushAdapterBuffers, он вызывает FreeAdapterChannel , чтобы освободить системный контроллер DMA, который ранее был выделен с помощью вызова AllocateAdapterChannel.

FreeAdapterChannel освобождает все регистры карт, выделенные при предыдущем вызове AllocateAdapterChannel. Драйвер вызывает эту подпрограмму, только если ее подпрограмма AdapterControl возвращает KeepObject.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
IRQL DISPATCH_LEVEL
Правила соответствия DDI IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm)

См. также раздел

AllocateAdapterChannel

DMA_ADAPTER

DMA_OPERATIONS

FlushAdapterBuffers

FreeMapRegisters

IoGetDmaAdapter

MapTransfer