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


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

См. также

AllocateCommonBuffer

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter