Partager via


PFREE_COMMON_BUFFER fonction de rappel (wdm.h)

La routine FreeCommonBuffer libère une mémoire tampon commune allouée par AllocateCommonBuffer, ainsi que toutes les ressources utilisées par la mémoire tampon.

Syntaxe

PFREE_COMMON_BUFFER PfreeCommonBuffer;

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

Paramètres

[in] DmaAdapter

Pointeur vers la structure DMA_ADAPTER retournée par IoGetDmaAdapter qui représente l’adaptateur de master bus ou le contrôleur DMA.

[in] Length

Spécifie le nombre d’octets à libérer.

[in] LogicalAddress

Spécifie l’adresse logique de la plage de mémoire allouée.

[in] VirtualAddress

Pointeur vers l’adresse virtuelle correspondante de la plage de mémoire allouée.

[in] CacheEnabled

Indique si la mémoire allouée est mise en cache.

Valeur de retour

None

Remarques

FreeCommonBuffer n’est pas une routine système qui peut être appelée directement par nom. Cette routine peut être appelée uniquement par le pointeur de l’adresse retournée dans une structure DMA_OPERATIONS . Les pilotes obtiennent l’adresse de cette routine en appelant IoGetDmaAdapter.

Pour libérer une mémoire tampon commune, un pilote appelle FreeCommonBuffer pour annuler le mappage de ses adresses logiques et virtuelles. Les paramètres passés à FreeCommonBuffer doivent correspondre exactement à ceux passés à et retournés par AllocateCommonBuffer. Un pilote ne peut pas libérer une partie d’une mémoire tampon commune allouée.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 2000.
Plateforme cible Desktop (Expérience utilisateur)
En-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
IRQL PASSIVE_LEVEL
Règles de conformité DDI IrqlDispatch(wdm)

Voir aussi

AllocateCommonBuffer

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter