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

Подпрограмма IoRegisterShutdownNotification регистрирует драйвер для получения IRP_MJ_SHUTDOWN IRP при завершении работы системы.

Синтаксис

NTSTATUS IoRegisterShutdownNotification(
  [in] PDEVICE_OBJECT DeviceObject
);

Параметры

[in] DeviceObject

Указатель на объект устройства, для которого драйвер запрашивает уведомление о завершении работы. Система передает этот указатель в подпрограмму DispatchShutdown драйвера.

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

IoRegisterShutdownNotification возвращает STATUS_SUCCESS об успешном выполнении или соответствующий код ошибки NTSTATUS при сбое.

Комментарии

Подпрограмма IoRegisterShutdownNotification регистрирует драйвер для получения IRP_MJ_SHUTDOWN IRP для указанного устройства при завершении работы системы. Драйвер получает по одному такому IRP для каждого устройства, которое он регистрирует для получения уведомлений. Драйверы обрабатывают IRP_MJ_SHUTDOWN IRP в своих подпрограммах DispatchShutdown .

Если драйвер перестает требовать уведомления о завершении работы для устройства, используйте IoUnregisterShutdownNotification , чтобы удалить драйвер из очереди уведомлений о завершении работы.

Только один драйвер в стеке устройств должен регистрироваться для получения уведомления о завершении работы.

Система отправляет драйверу запрос IRP_MJ_SHUTDOWN перед очисткой файловых систем. Некоторые драйверы, например драйверы для запоминающих устройств, могут требовать уведомления о завершении работы после очистки файловой системы. Чтобы получать уведомление о завершении работы устройства после очистки файловой системы, используйте процедуру IoRegisterLastChanceShutdownNotification .

Зарегистрированная подпрограмма DispatchShutdown вызывается до того, как диспетчер управления питанием отправляет IRP_MN_SET_POWER запрос на PowerSystemShutdown. Подпрограмма DispatchShutdown не вызывается для перехода в другие состояния питания.

Модуль записи драйвера не может делать никаких предположений о порядке, в котором будет вызываться подпрограмма DispatchShutdown драйвера в связи с другими такими подпрограммами или другими действиями по завершению работы.

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

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows 2000 и более поздних версиях Windows. Недоступно в Microsoft Windows 98/Me.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

См. также раздел

DispatchShutdown

IoRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification