2 April 1998 1. Q: Why are there so many little include files? A: Because they are defining various private entities that we don't want to redefine (build conflicts, etc), or because they are a copy of a symbol that really lives somewhere else but we cannot include due to some header ordering problem. (e.g. we can't have both ntddk.h and ntos.h, so ZwInitiatePowerAction has to be copied into a another header file...) 2. Q: Why doesn't the driver remote, unload, stop, or even fail init? A: We call the hal with direct call vectors for use in response to the OS calling it (the hal) to go to S3 or S4. Once we've set those vectors, we can't pull the code out from under the Hal. AND Without the PNP stuff batteries don't work, but other APM features do. Without the SuspendPoll thread machine initiated APM ops don't work, but UI initiated ops (the user did C-A-D, shutdown, Standby) WILL still work. So, we take what we can get.