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.
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
Pointeur vers la structure DMA_ADAPTER retournée par IoGetDmaAdapter qui représente l’adaptateur maître de 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.
Aucun
FreeCommonBuffer n’est pas une routine système qui peut être appelée directement par nom. Cette routine est appelante 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 à AllocateCommonBuffer. Un pilote ne peut pas libérer une partie d’une mémoire tampon commune allouée.
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows 2000. |
plateforme cible | Bureau |
d’en-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | PASSIVE_LEVEL |
règles de conformité DDI | irqlDispatch(wdm) |