how to keep NIC functioning during system shutdown?

Hi

during system shutdown, what happens to an NIC miniport driver, will NDIS shutdown NIC by setting the NIC power state to D3, or just call NIC driver’s MiniportShutdown routine?

how to keep NIC functioning during system shutdown? i.e., is there any way to prevent NIC miniport from receiving power down event or shutdown notification during system shutdown? will an NDIS intermediate drive satisfy my requirement, and how?

i have a network based SCSI miniport driver which boot windows from remote server, and it must depend on underlying NIC to perform disk I/O. so, on system shutting down, the NIC must keep functioning and must survive the SCSI miniport (on a normal system, NIC driver is always closed before disk driver), so that SCSI miniport can complete necessary data flushing job.

thanks.
dong dawoo


Ïë³ÉΪ·ëС¸Õ¡¢³Â¿­¸è¡¢ÕżÍÖÐÈý´óµ¼ÑݵÄÖ÷½ÇÂð£¿

[resending due to bounce]

There is no way to express this dependency unless you are a child driver
of the NIC. You can send the NIC a usage notification which will put
you both into the non power pagable group, but there is no ordering
guarantee within that group…but that may be enough. By both being non
power pagable, you are powered down after the file systems have flushed
which means you will not see any FS I/O or paging I/O. Then you can
power down your devices (if that even applies for a remote device) when
either your NIC or your storage driver powers down first (you will have
to use NDIS pnp notification callbacks or roll your own). You would
have the same problem if the NIC was disabled at runtime as well and
this solution solves that.

d

– I can spell, I just can’t type.

>There is no way to express this dependency unless you are a child driver

of the NIC. You can send the NIC a usage notification which will put
you both into the non power pagable group, but there is no ordering
guarantee within that group…but that may be enough. By both being non
power pagable, you are powered down after the file systems have flushed

In short - TdiRegisterPnPHandlers is the solution.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com