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


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

См. также раздел

AllocateCommonBuffer

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter