функция обратного вызова 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, представляющей адаптер шины или контроллер DMA.
[in] Length
Указывает количество байтов для освобождения.
[in] LogicalAddress
Задает логический адрес выделенного диапазона памяти.
[in] VirtualAddress
Указатель на соответствующий виртуальный адрес выделенного диапазона памяти.
[in] CacheEnabled
Указывает, кэшируется ли выделенная память.
Возвращаемое значение
Никакой
Замечания
FreeCommonBuffer не является системной подпрограммой, которая может вызываться напрямую по имени. Эта подпрограмма вызывается только указателем из адреса, возвращаемого в DMA_OPERATIONS структуре. Драйверы получают адрес этой подпрограммы путем вызова IoGetDmaAdapter.
Чтобы освободить общий буфер, драйвер вызывает FreeCommonBuffer для распаковки логических и виртуальных адресов. Параметры, передаваемые в FreeCommonBuffer, должны соответствовать точно переданным и возвращенным из AllocateCommonBuffer. Драйвер не может освободить часть выделенного общего буфера.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 2000. |
целевая платформа | Настольный |
заголовка | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | PASSIVE_LEVEL |
правил соответствия DDI | irqlDispatch(wdm) |