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

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

AllocateAdapterChannel

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter

MapTransfer