共用方式為


mmUnlockPagableImageSection 函式 (wdm.h)

MmUnlockPagableImageSection 例程會釋放驅動程式程式代碼或驅動程式數據的區段,先前已鎖定為具有 MmLockPagableCodeSectionMmLockPagableDataSection 或 mmLockPagableSectionByHandle 的系統空間,以便再次分頁區段。

語法

void MmUnlockPagableImageSection(
  [in] PVOID ImageSectionHandle
);

參數

[in] ImageSectionHandle

指定呼叫 MmLockPagableCodeSectionMmLockPagableDataSection 所傳回的句柄。

傳回值

備註

如果驅動程式的裝置佇列中有任何未完成的 IRP () 或內部佇列 () ,則不得釋放驅動程式可分頁區段的句柄。 呼叫 MmUnlockPagableImageSection 時,當該區段的句柄沒有其他參考時,會還原整個區段的可分頁性。

記憶體管理員會在區段的句柄上維護參考計數。 只有在參考計數為零時,才可使用可分頁的區段。 每個鎖定要求都會遞增計數;每個解除鎖定要求都會遞減計數。 驅動程式必須鎖定區段的次數,讓區段可供分頁。

不論計數為何,句柄一律有效。 如果句柄上的計數為零,而且呼叫 MmLockPagableSectionByHandle,則計數會設定為一,如果區段已分頁,則會分頁。

在大部分情況下,會在驅動程式的 Unload 例程之前呼叫 MmUnlockPagableImageSection。 也就是說,具有可分頁區段的驅動程式在呼叫 Unload 例程之前,可能會有其 DispatchClose 和/或 DispatchShutdown 例程呼叫 MmUnlockPagableImageSection。 不過,在從系統卸除驅動程式本身之前,應該小心卸除可卸除的驅動程式,以釋放任何可分頁的區段。

如需分頁程式代碼和數據的詳細資訊,請參閱 讓驅動程式可分頁

規格需求

需求
最低支援的用戶端 從 Windows 2000 開始提供。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <=APC_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIS (storport) IrqlMmApcLte (wdm)

另請參閱

MmLockPagableCodeSection

MmLockPagableDataSection

MmLockPagableSectionByHandle

MmPageEntireDriver

MmResetDriverPaging