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) |