функция обратного вызова PFREE_COMMON_BUFFER (wdm.h)
Подпрограмма FreeCommonBuffer освобождает общий буфер, выделенный AllocateCommonBuffer, а также все ресурсы, используемые буфером.
Синтаксис
PFREE_COMMON_BUFFER PfreeCommonBuffer;
void PfreeCommonBuffer(
[in] PDMA_ADAPTER DmaAdapter,
[in] ULONG Length,
[in] PHYSICAL_ADDRESS LogicalAddress,
[in] PVOID VirtualAddress,
[in] BOOLEAN CacheEnabled
)
{...}
Параметры
[in] DmaAdapter
Указатель на структуру DMA_ADAPTER, возвращаемую IoGetDmaAdapter, которая представляет адаптер master шины или контроллер DMA.
[in] Length
Указывает количество байтов для освобождения.
[in] LogicalAddress
Задает логический адрес выделенного диапазона памяти.
[in] VirtualAddress
Указатель на соответствующий виртуальный адрес выделенного диапазона памяти.
[in] CacheEnabled
Указывает, кэшируется ли выделенная память.
Возвращаемое значение
None
Remarks
FreeCommonBuffer не является системной подпрограммой, которую можно вызывать напрямую по имени. Эта подпрограмма может вызываться только указателем из адреса, возвращаемого в DMA_OPERATIONS структуре. Драйверы получают адрес этой подпрограммы, вызывая IoGetDmaAdapter.
Чтобы освободить общий буфер, драйвер вызывает FreeCommonBuffer , чтобы отменить сопоставление его логических и виртуальных адресов. Параметры, передаваемые в FreeCommonBuffer , должны точно соответствовать параметрам, переданным в и возвращенным из AllocateCommonBuffer. Драйвер не может освободить часть выделенного общего буфера.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 2000. |
Целевая платформа | Персональный компьютер |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | IrqlDispatch(wdm) |