NdisFreeMemoryWithTagPriority 函数 (ndis.h)
NdisFreeMemoryWithTagPriority 函数释放使用 分配的内存 NdisAllocateMemoryWithTagPriority 函数。
void NdisFreeMemoryWithTagPriority(
[in] NDIS_HANDLE NdisHandle,
[in] PVOID VirtualAddress,
[in] ULONG Tag
);
[in] NdisHandle
在调用方初始化期间获取的 NDIS 驱动程序或实例句柄。 这应该是驱动程序传递给 NdisAllocateMemoryWithTagPriority 函数。 例如,微型端口驱动程序可以使用从中获取的 NDIS 句柄 NdisMRegisterMiniportDriver 或 MiniportInitializeEx 函数。 其他 NDIS 驱动程序可以使用以下函数中的句柄:
[in] VirtualAddress
指向已分配内存的基本虚拟地址的指针。 此地址由 NdisAllocateMemoryWithTagPriority 函数。
[in] Tag
一个字符串,用单引号分隔,最多四个字符,通常按反向顺序指定。 此调用的 NDIS 提供的默认标记为“maDN”,但调用方可以通过提供显式值来替代此默认值。
没有
由于在卸载微型端口驱动程序之前,很少释放非缓存内存和连续内存,因此,NdisFreeMemoryWithTagPriority 的调用方通常在 IRQL = PASSIVE_LEVEL针对这些类型的取消分配运行。 在任何情况下:
- 当 NdisFreeMemoryWithTagPriority 的调用方 释放连续内存时,它必须在 IRQL = PASSIVE_LEVEL 上运行。
- 当 NdisFreeMemoryWithTagPriority 的调用方 释放非缓存内存时,它必须在 IRQL < DISPATCH_LEVEL 上运行。
- 当 NdisFreeMemoryWithTagPriority 的调用方 释放既不是连续的也不是非缓存的内存时,它必须运行在 IRQL <= DISPATCH_LEVEL。
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.20 及更高版本中受支持。 |
目标平台 | 普遍 |
标头 | ndis.h (包括 Ndis.h) |
库 | Ndis.lib |
IRQL | 请参阅“备注”部分。 |
DDI 符合性规则 | NdisAllocateMemoryWithTagPriority_Cleanup(ndis),NdisAllocateMemoryWithTagPriority_InitFail(ndis) |