NdisFreeMemory 函式 (ndis.h)
NdisFreeMemory 函式會釋放先前使用 NdisAllocateMemoryWithTagPriority 函式配置的記憶體區塊。
語法
void NdisFreeMemory(
[in] PVOID VirtualAddress,
[in] UINT Length,
[in] UINT MemoryFlags
);
參數
[in] VirtualAddress
配置記憶體之基底虛擬位址的指標。 此位址是由 NdisAllocateMemoryWithTagPriority 函式傳回。
[in] Length
要釋放的記憶體區塊大小,以位元組為單位。 如果記憶體是使用 NdisAllocateMemoryWithTagPriority 配置,或 MemoryFlags 參數為零,則會忽略此參數。
[in] MemoryFlags
一組旗標,指定要釋放的記憶體類型。 如果記憶體已使用 NdisAllocateMemoryWithTagPriority 配置,這個值就必須是零。 使用 NDIS 6.0 和更新版本時, NdisAllocateMemoryWithTagPriority 一律用來配置記憶體。
傳回值
無
備註
由於在配置迷你埠驅動程式卸載之前,很少釋放非快取記憶體和連續記憶體, 因此 NdisFreeMemory 的呼叫端通常會在 IRQL = PASSIVE_LEVEL針對這些類型的解除分配執行。 在任何情況下:
- 釋放連續記憶體時, NdisFreeMemory 的呼叫端必須在 IRQL = PASSIVE_LEVEL上執行。
- 釋放非快取記憶體時, NdisFreeMemory 的呼叫端必須在 IRQL < DISPATCH_LEVEL 上執行。
- 釋放不連續或非快取的記憶體時, NdisFreeMemory 的呼叫端必須在 IRQL <= DISPATCH_LEVEL執行。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | (支援 NDIS 6.0 和 NDIS 5.1 驅動程式,請參閱 Windows Vista 中的 NdisFreeMemory (NDIS 5.1) ) 。 (支援 NDIS 5.1 驅動程式,請參閱 Windows XP 中的 NdisFreeMemory (NDIS 5.1) ) 。 |
目標平台 | Universal |
標頭 | ndis.h (包含 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | 請參閱一節 |
DDI 合規性規則 | Irql_Miscellaneous_Function (ndis) 、NdisAllocateMemoryWithTagPriority_Cleanup (ndis ) 、NdisAllocateMemoryWithTagPriority_InitFail (ndis) 、 NdisQueryBindInstanceName (ndis) |