共用方式為


MmUnlockPagableImageSection 函式 (wdm.h)

MmUnlockPagableImageSection 例程會釋放驅動程式程式代碼或驅動程式數據的區段,先前已鎖定 MmLockPagableCodeSectionmmLockPagableDataSectionMmLockPagableSectionByHandle,以便再次分頁區段。

語法

void MmUnlockPagableImageSection(
  [in] PVOID ImageSectionHandle
);

參數

[in] ImageSectionHandle

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

傳回值

沒有

言論

如果驅動程式在其裝置佇列或內部佇列中有任何未處理的 IRP,則不得釋放驅動程式可分頁區段的句柄。 呼叫 MmUnlockPagableImageSection 還原該區段的可頁面性,而該區段沒有該區段句柄的參考。

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

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

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

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

要求

要求 價值
最低支援的用戶端 從 Windows 2000 開始提供。
目標平臺 普遍
標頭 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