[NTOS]: Have I/O Manager Volume Device Objects register with the Power Manager so...
authorSir Richard <sir_richard@svn.reactos.org>
Mon, 8 Mar 2010 20:47:10 +0000 (20:47 +0000)
committerSir Richard <sir_richard@svn.reactos.org>
Mon, 8 Mar 2010 20:47:10 +0000 (20:47 +0000)
commit8a4845b4092b1a865dc0e678ab4545216a70e111
tree9a309bcfa099c43a3c6facb4afb18bd79936de80
parentc14fc3dc56705be5aac64409b186830f35201c40
[NTOS]: Have I/O Manager Volume Device Objects register with the Power Manager so that they can receive dope.
[NTOS]: Reimplement NtShutdownSystem.
[NTOS]: Implement NtSetSystemPowerState for the shutdown/reboot cases.
[NTOS]: Use the dope from the volume device objects to flush all writeable (non-floppy) devices. Pending hard-disk changes are now flushed to disks before shutdown.
[NTOS]: Flush \\REGISTRY during shutdown. This flushes all pending changes.
[NTOS]: Call into Cc to flush lazy writer during shutdown.
[NTOS]: Stop killing processes on shutdown. The kernel should not be doing this.
[NTOS]: Don't only shutdown disk file systems, but also cdrom and tape.
[NTOS]: Don't only notify drivers of first-chance shutdown -- also parse the last-change shutdown list.
[NTOS]: Reference drivers registering for shutdown notifications so that they remain loaded for them to get the notification at shutdown.
[NTOS]: Notify drivers that have registered/opened the Power State callback.
[NTOS]: A lot of the Po* power state code is highly simplified, but provides a good roadmap to anyone interested in this functionality long-term.

svn path=/trunk/; revision=46004
reactos/ntoskrnl/ex/shutdown.c
reactos/ntoskrnl/include/internal/io.h
reactos/ntoskrnl/include/internal/po.h
reactos/ntoskrnl/io/iomgr/device.c
reactos/ntoskrnl/io/iomgr/volume.c
reactos/ntoskrnl/ntoskrnl-generic.rbuild
reactos/ntoskrnl/po/poshtdwn.c [new file with mode: 0644]
reactos/ntoskrnl/po/povolume.c [new file with mode: 0644]
reactos/ntoskrnl/po/power.c