In Win8, my driver behaves differently between restart and cold start

Hi guys,

My driver used to work well in all the OSes prior to Win8. But the testing on Win8 in my lab confused me that my driver can be loaded well during system restarting, but it always (not all) fails to use the ethernet after cold start.

My driver communicates with the hardware through NDIS protocol. And after cold start, I find that this problem is that my driver can’t find the mac of NIC of the testing machine. By researching the output of WinDBG, I find that my driver seems to loaded much earlier than the other system components. It seems to me that Win8 loads my driver in a higher priority than the driver of NIC. But it works normally, if the system is restarted instead of cold start.

So I am wondering what’s the difference between system restart and cold start in Win8?

Thanks a lot for any advice!

Joseph

I thought it is due to the old NDIS 5.x in my driver, but Ms says this could still be compatible in Win8.

In Win8, so called “shutdown” is mini-hibernation (for good or worse; I think it’s a snake-oil solution). A warm restart I guess is full (old style) restart.

You should not rely on your driver start order. Register for interface notification for GUID_DEVINTERFACE_NET. YOu’ll get notifications when NDIS miniports start.

Is your driver configured as boot start or demand?

d

debt from my phone


From: luming419@163.com
Sent: 6/15/2012 1:24 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] In Win8, my driver behaves differently between restart and cold start

Hi guys,

My driver used to work well in all the OSes prior to Win8. But the testing on Win8 in my lab confused me that my driver can be loaded well during system restarting, but it always (not all) fails to use the ethernet after cold start.

My driver communicates with the hardware through NDIS protocol. And after cold start, I find that this problem is that my driver can’t find the mac of NIC of the testing machine. By researching the output of WinDBG, I find that my driver seems to loaded much earlier than the other system components. It seems to me that Win8 loads my driver in a higher priority than the driver of NIC. But it works normally, if the system is restarted instead of cold start.

So I am wondering what’s the difference between system restart and cold start in Win8?

Thanks a lot for any advice!

Joseph


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

Thank you Alex Grig for your reply, I will have a try on your advice!

To Doron, Thanks for your attention. My driver is loaded as boot start.

And so far, I have found a trick to fix it, that, I add a dependency on Tcpip service for my driver in the registry. Then my driver works after cold start. Although by observing the output of WinDBG, my driver is stilled loaded very early.

It is loaded very early because it is boot start

d

debt from my phone


From: luming419@163.com
Sent: 6/18/2012 2:09 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] In Win8, my driver behaves differently between restart and cold start

Thank you Alex Grig for your reply, I will have a try on your advice!

To Doron, Thanks for your attention. My driver is loaded as boot start.

And so far, I have found a trick to fix it, that, I add a dependency on Tcpip service for my driver in the registry. Then my driver works after cold start. Although by observing the output of WinDBG, my driver is stilled loaded very early.


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

But it is loaded well in all OSes prior to Win8. And since MS has used a new technique similar to Hibernation to shut down Win8 which doesn’t shut Win8 down entirely, I believe my driver may also be saved in the disk during shutting down, and be resumed much earlier than many system services like Tcpip etc.

Resuming from hibernate does not affect load order, just the order in which devices are powered on

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of luming419@163.com
Sent: Monday, June 18, 2012 11:43 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] In Win8, my driver behaves differently between restart and cold start

But it is loaded well in all OSes prior to Win8. And since MS has used a new technique similar to Hibernation to shut down Win8 which doesn’t shut Win8 down entirely, I believe my driver may also be saved in the disk during shutting down, and be resumed much earlier than many system services like Tcpip etc.


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer