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)

另請參閱

MiniportHaltEx

NdisAllocateMemoryWithTagPriority