функция обратного вызова 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) |