Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Программа 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) |