Auf Englisch lesen

Freigeben über


PFREE_COMMON_BUFFER Rückruffunktion (wdm.h)

Die FreeCommonBuffer Routine gibt einen gemeinsamen Puffer frei, der von AllocateCommonBufferzugeordnet wird, zusammen mit allen Ressourcen, die der Puffer verwendet.

Syntax

C++
PFREE_COMMON_BUFFER PfreeCommonBuffer;

void PfreeCommonBuffer(
  [in] PDMA_ADAPTER DmaAdapter,
  [in] ULONG Length,
  [in] PHYSICAL_ADDRESS LogicalAddress,
  [in] PVOID VirtualAddress,
  [in] BOOLEAN CacheEnabled
)
{...}

Parameter

[in] DmaAdapter

Zeiger auf die DMA_ADAPTER Struktur, die von IoGetDmaAdapter zurückgegeben wird, die den Busmasteradapter oder DMA-Controller darstellt.

[in] Length

Gibt die Anzahl der Bytes an, die verwechselt werden sollen.

[in] LogicalAddress

Gibt die logische Adresse des zugeordneten Speicherbereichs an.

[in] VirtualAddress

Zeigen Sie auf die entsprechende virtuelle Adresse des zugewiesenen Speicherbereichs.

[in] CacheEnabled

Gibt an, ob der zugeordnete Arbeitsspeicher zwischengespeichert wird.

Rückgabewert

Nichts

Bemerkungen

FreeCommonBuffer ist keine Systemroutine, die direkt nach Namen aufgerufen werden kann. Diese Routine kann nur durch Zeiger von der in einer DMA_OPERATIONS Struktur zurückgegebenen Adresse aufgerufen werden. Treiber rufen die Adresse dieser Routine ab, indem sie IoGetDmaAdapteraufruft.

Um einen allgemeinen Puffer freizugeben, ruft ein Treiber FreeCommonBuffer- auf, um die Zuordnung seiner logischen und virtuellen Adressen aufzuheben. Die an FreeCommonBuffer übergebenen Parameter müssen genau mit den parametern übereinstimmen, die an AllocateCommonBufferübergeben und zurückgegeben werden. Ein Treiber kann keinen Teil eines zugeordneten gemeinsamen Puffers freigeben.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Ab Windows 2000 verfügbar.
Zielplattform- Desktop
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln IrqlDispatch(wdm)

Siehe auch

AllocateCommonBuffer

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter-