Функция IoRegisterLastChanceShutdownNotification (wdm.h)
Процедура IoRegisterLastChanceShutdownNotification регистрирует драйвер для получения IRP_MJ_SHUTDOWN IRP при завершении работы системы после очистки всех файловых систем.
Синтаксис
NTSTATUS IoRegisterLastChanceShutdownNotification(
[in] PDEVICE_OBJECT DeviceObject
);
Параметры
[in] DeviceObject
Указатель на объект устройства, для которого драйвер запрашивает уведомление о завершении работы. Система передает этот указатель в подпрограмму DispatchShutdown драйвера.
Возвращаемое значение
IoRegisterLastChanceShutdownNotification возвращает STATUS_SUCCESS при успешном выполнении или соответствующий код ошибки NTSTATUS при сбое.
Комментарии
Подпрограмма IoRegisterLastChanceShutdownNotification регистрирует драйвер для получения IRP_MJ_SHUTDOWN IRP для указанного устройства при завершении работы системы. Драйвер получает по одному такому IRP для каждого устройства, которое он регистрирует для получения уведомлений. Драйверы обрабатывают IRP_MJ_SHUTDOWN IRP в своих подпрограммах DispatchShutdown .
Для любого устройства, зарегистрированного с помощью этой подпрограммы, система отправляет IRP_MJ_SHUTDOWN IRP после очистки всех файловых систем. Только один драйвер в стеке устройств должен зарегистрироваться для получения уведомления о завершении работы, вызвав IoRegisterShutdownNotification или IoRegisterLastChanceShutdownNotification.
Если драйвер перестает требовать уведомления о завершении работы для этого устройства, используйте IoUnregisterShutdownNotification , чтобы удалить драйвер из очереди уведомлений о завершении работы.
Драйвер, вызывающий IoRegisterLastChanceShutdownNotification , должен соответствовать следующим ограничениям в своей подпрограмме DispatchShutdown :
- Подпрограмма DispatchShutdown не должна вызывать подпрограммы, доступные для страниц.
- Подпрограмма DispatchShutdown не должна обращаться к страничной памяти.
- Подпрограмма DispatchShutdown не должна выполнять никаких операций ввода-вывода файлов.
Зарегистрированная подпрограмма DispatchShutdown вызывается до того, как диспетчер управления питанием отправляет IRP_MN_SET_POWER запрос на PowerSystemShutdown. Подпрограмма DispatchShutdown не вызывается для перехода в другие состояния питания.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 2000 и более поздних версиях Windows. Недоступно в Microsoft Windows 98/Me. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |