Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Программа 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) |