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


функция обратного вызова 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, представляющей адаптер шины или контроллер DMA.

[in] MapRegisterBase

Указывает регистры карты, выделенные для операции DMA. Система передает это значение в подпрограмму Adapter Control драйвера.

[in] NumberOfMapRegisters

Указывает количество выпущенных регистров карты. Это значение должно соответствовать номеру, указанному в предыдущем вызове AllocateAdapterChannel.

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

Никакой

Замечания

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

Когда драйвер главного устройства шины завершил текущий запрос на передачу DMA на основе пакетов, он вызывает FreeMapRegisters, чтобы освободить регистры карты, ранее выделенные вызовом AllocateAdapterChannel, так как его AdapterControl подпрограмма вернула DeallocateObjectKeepRegisters. Драйвер должен вызывать FreeMapRegisters после вызова FlushAdapterBuffers.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 2000.
целевая платформа Настольный
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
IRQL DISPATCH_LEVEL
правил соответствия DDI irqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm)

См. также

AllocateAdapterChannel

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter

MapTransfer