Поделиться через


Функция MmUnlockPagableImageSection (wdm.h)

Подпрограмма MmUnlockPagableImageSection выпускает раздел данных кода драйвера или драйвера, ранее заблокированных в системном пространстве с MmLockPagableCodeSection, MmLockPagableDataSection или MmLockPagableSectionSectionByHandle, чтобы раздел можно было вывести еще раз.

Синтаксис

void MmUnlockPagableImageSection(
  [in] PVOID ImageSectionHandle
);

Параметры

[in] ImageSectionHandle

Задает дескриптор, возвращаемый вызовом MmLockPagableCodeSection или MmLockPagableDataSection.

Возвращаемое значение

Никакой

Замечания

Дескриптор страницы драйвера не должен быть освобожден, если драйвер имеет какие-либо невыполненные irps в очередях устройств или внутренних очередях. Вызов MmUnlockPagableImageSection восстанавливает возможность страницы всего раздела, если нет дополнительных ссылок на дескриптор этого раздела.

Диспетчер памяти сохраняет количество ссылок на дескриптор в разделе. Раздел, доступный для страницы, доступен только в том случае, если число ссылок равно нулю. Каждый запрос блокировки увеличивает число; каждый запрос разблокировки уменьшает количество. Драйвер должен разблокировать раздел столько раз, сколько он блокирует раздел, чтобы сделать раздел доступным для вывода.

Дескриптор всегда действителен, независимо от количества. Если число дескрипторов равно нулю, и вызов выполняется для MmLockPagableSectionByHandle, число задается в один, и если раздел был выгружен, он будет выстраивать.

В большинстве случаев mmUnlockPagableImageSection вызывается перед выгрузки драйвера. То есть драйвер с разделом на страницы, скорее всего, будет иметь DispatchClose и/или DispatchShutdown стандартный вызов MmUnlockPagableImageSection до вызова подпрограммы выгрузки. Однако будьте внимательны в выгрузимых драйверах, чтобы освободить любой раздел, доступный для страниц, прежде чем сам драйвер выгрузится из системы.

Дополнительные сведения о коде и данных по страницам см. в разделе Созданиедля страниц драйверов.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 2000.
целевая платформа Всеобщий
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL
правил соответствия DDI HwStorPortProhibitedDIs(storport), IrqlMmApcLte(wdm)

См. также

MmLockPagableCodeSection

MmLockPagableDataSection

MmLockPagableSectionByHandle

MmPageEntireDriver

mmResetDriverPaging