Let us know how you get on.
Okay, if you really insist to know now ...
[...] probably a better way to approach the problem rather than randomly killing processes to see what happens.
I did exactly the above -- just for good measure ...
Using a batch script to forcibly terminate each of my running processes in alphabetical order, I was able to find processes that CMD (more accurately taskkill.exe) refused to kill, and also find processes that successfully terminate but its absence leads to system instability either one way or another.
The descriptions at the top of each list and way the lists are divided are based off the behaviour of the standard taskkill.exe tool supplied with a Windows 7 install. Error messages thrown by Taskkill will be used to determine a critical process.
For the sake of fun and curiosity, after finding all the critical processes I could with Taskkill, I have gone ahead and killed each one of the critical processes with a separate downloaded tool: PsKill, which is more unrestricted in that it kills any process one specifies to it; no questions asked (some exceptions found). I've added a brief description of the immediately observable consequences of doing so next to the respective names of each of the processes.
Note: there may be multiple instances of a critical process running at one time. Only one will be mentioned if the case.
List 1: Below is a list of processes Taskkill will not kill due to "Reason: This is critical system process. Taskkill cannot end this process":
"csrss.exe" - BSOD
"smss.exe" - BSOD
"System Idle Process" - Unable to kill due to "Process does not exist."
"winlogon.exe" - Immediately logs the user off, rather violently
List 2: A list of processes that Taskkill will not terminate because of "Reason: Access is denied" even while logged in as Administrator; and even while logged in as System for that matter! (access is always denied). These processes may not be considered critical:
"audiodg.exe" - No observable differences when killed
"MsMpEng.exe" - Unable to kill due to "Access is denied."
"NisSrv.exe" - Unable to kill due to "Access is denied."
"System" - Process immediately restarts itself; no observable differences
List 3: A notable list of processes that can be killed by taskkill but leads to system instability.
"lsass.exe" - Alert box appears with the message "Windows has encountered a critical problem and will restart automatically in one minute. Please save your work now"; this restart cannot be aborted with 'shutdown -a'
"lsm.exe" - Ditto as above
"services.exe" - Ditto as above
"svchost.exe" - Windows reverts to a basic theme
"wininit.exe" - BSOD
If the definition of a 'critical process' is a process that Task Manager deems to be unsafe to kill and raises a special warning box for the process when a user attempts to end one, then only the three following processes satisfy the definition:
"csrss.exe"
"smss.exe"
"wininit.exe"
Should an attempt be made by the user to end any of three processes above via Task Manager, a warning message occurs reading: "Ending this process will shut down the operating system immediately. You will lose all unsaved data. Are you sure you want to continue?", making the user very aware of what they are about to do, as a check box and a button press are required to 'continue'.
I would have thought lsass.exe or winlogon.exe would give these warnings
Notice how the processes that do give the special warning, they all cause Windows to collapse into a blue screen if they're killed. It's from this observation, we could say that lsass.exe and winlogon.exe don't give these same warnings because killing either one of these will not bring about instant data loss. Windows gives a minute for the user to save any data should lsass or Winlogon somehow die.
Command prompt wise, most critical processes are unable to be killed with standard CMD commands. The only critical process that is able to be killed via the standard 'builtin' command taskkill.exe, that will cause a BSOD, is wininit.exe. Even though Wininit is guarded by that special warning message in Task Manager, Taskkill will happily kill the critical process if directed to, unlike other BSOD generating processes when killed, strangely.
Somebody at Microsoft forgot to whitelist Wininit as critical in the Taskkill application, perhaps. Killing Wininit has got to be the nicest and easiest method to see a blue screen nonetheless; I reckon they should leave it kill-able in future.
All critical processes I have managed to find, though, have already been mentioned here in prior posts within this thread.
Final thing worth noting: Renaming any odd application to the same name as a critical process will NOT be treated as if critical by Task Manager.
I hope this post provides the final pieces of information you are after, Keyes. There are enough lists in this thread that answer the initial question.
Is there a complete list of processes that are considered critical like this?
There are only 3, and you've found them, right from post 1.
Consider marking this thread solved.