A. All the above can ONLY be caused by a hardware problem or with part of NT running in Kernel Mode. e.g. bits of NT, scsi drivers, network drivers, video drivers etc.

99.999% of the SQL Server code runs in user mode, just like any normal program. Therefore it is no more capable of causing a blue-screen than something like "Word" is. It can only "cause" the problem in as much as it stresses the hardware/memory/pci bus/disk subsystem and is exposing a bug in an NT driver. e.g. Drivers must typically lock all their memory so that it doesn't get swapped to the pagefile - SQL Server may "cause" un-locked driver pages to be swapped out due to it's memory needs. When the driver then goes to access the page - boom, blue screen!

The 0.001% of the code that does run in kernel mode is the SQLPERxx.DLL module (xx = 60 or 70) - due to the way that NT performance monitor works, this code works under the winlogon process rather than sqlserver.exe, and is in kernel mode. To see if this is an issue, rename the sqlperxx.dll and restart SQL. It won't find the dll and therefore won't load it - SQL performance counters will be disabled.

If you are getting one of these problems then it needs to be investigated like any other NT blue-screen problem. i.e. check the driver/program in control at the time, use dumpexam to look at the dump, apply a newer servicepack, upgrade all system drivers, contact Microsoft PSS for WINNT support.

You may also wish to download and run SQLHDTST (for 6.5) or SQL70IOSTRESS (for 7.0). These stress the hardware in the same way as SQL Server and could be used to show hardware/compatibility/driver problems.