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


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

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

Синтаксис

NTSTATUS IoRegisterShutdownNotification(
  [in] PDEVICE_OBJECT DeviceObject
);

Параметры

[in] DeviceObject

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

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

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

Замечания

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

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

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

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows 2000 и более поздних версиях Windows. Недоступно в Microsoft Windows 98/Me.
целевая платформа Всеобщий
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
правил соответствия DDI HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

См. также

DispatchShutdown

IoRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification