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執行。
- 釋放非快取記憶體時,必須在 IRQL < DISPATCH_LEVEL 執行 NdisFreeMemory 的呼叫端。
- 釋放既不連續也不是非快取的記憶體時,NdisFreeMemory 的呼叫者必須在 IRQL <= DISPATCH_LEVEL 執行。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 支援 Windows Vista 中的 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 NdisFreeMemory (NDIS 5.1)。 Windows XP 中支援 NDIS 5.1 驅動程式(請參閱 NdisFreeMemory (NDIS 5.1)。 |
目標平臺 | 普遍 |
標頭 | ndis.h (包括 Ndis.h) |
連結庫 | Ndis.lib |
IRQL | 請參閱一節 |
DDI 合規性規則 | Irql_Miscellaneous_Function(ndis)、NdisAllocateMemoryWithTagPriority_Cleanup(ndis)、NdisAllocateMemoryWithTagPriority_InitFail(ndis)、NdisQueryBindInstanceName(ndis) |