функция обратного вызова PFREE_MAP_REGISTERS (wdm.h)
Подпрограмма FreeMapRegisters выпускает набор регистров карты, сохраненных при вызове AllocateAdapterChannel.
Синтаксис
PFREE_MAP_REGISTERS PfreeMapRegisters;
void PfreeMapRegisters(
[in] PDMA_ADAPTER DmaAdapter,
[in] PVOID MapRegisterBase,
[in] ULONG NumberOfMapRegisters
)
{...}
Параметры
[in] DmaAdapter
Указатель на структуру DMA_ADAPTER, возвращаемую IoGetDmaAdapter, которая представляет адаптер master шины или контроллер DMA.
[in] MapRegisterBase
Указывает регистры карты, выделенные для операции DMA. Система передает это значение в подпрограмму AdapterControl драйвера.
[in] NumberOfMapRegisters
Указывает число отпустимых регистров карты. Это значение должно соответствовать номеру, указанному в предыдущем вызове AllocateAdapterChannel.
Возвращаемое значение
None
Remarks
FreeMapRegisters не является системной подпрограммой, которую можно вызывать напрямую по имени. Эта подпрограмма может вызываться только указателем из адреса, возвращаемого в структуре DMA_OPERATIONS . Драйверы получают адрес этой подпрограммы, вызывая IoGetDmaAdapter.
Когда драйвер устройства, master шины, выполнил текущий запрос на передачу DMA на основе пакетов, он вызывает FreeMapRegisters, чтобы освободить регистры карты, ранее выделенные вызовом AllocateAdapterChannel и сохраненные, так как его подпрограмма AdapterControlвернула DeallocateObjectKeepRegisters. Драйвер должен вызвать FreeMapRegisters после вызова FlushAdapterBuffers.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 2000. |
Целевая платформа | Персональный компьютер |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | DISPATCH_LEVEL |
Правила соответствия DDI | IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm) |