Windows Server 2012の起動時に0xC0000021Aでブルースクリーン(BSOD)が発生したし、尚且つエラーの原因がVerification of a known DLL failedの場合の問題があるDLLの特定方法です。

このエラーが発生するとセーフモードや前回正常起動時にしても同様のエラーでOSがクラッシュします。
問題が発生しているDLLを特定するために、memory.dmpとWinDbgを使用します。
memory.dmpは標準設定で、C:\Windowsに作成されていますので取り出しWinDbgに読み込ませます。
Microsoft (R) Windows Debugger Version 6.3.9600.17029 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\temp\dmp\MEMORY.DMP]
Kernel Bitmap Dump File: Only kernel address space is available
--- 省略 ---
Windows 8 Kernel Version 9200 MP (32 procs) Free x64
Product: Server, suite: TerminalServer SingleUserTS
Built by: 9200.16628.amd64fre.win8_gdr.130531-1504
Machine Name:
Kernel base = 0xfffff800`c5a80000 PsLoadedModuleList = 0xfffff800`c5d4ca20
Debug session time: Fri Jun 6 17:26:17.796 2014 (UTC + 9:00)
System Uptime: 0 days 0:00:21.511
Loading Kernel Symbols
...............................................................
...............................................
Loading User Symbols
..
Loading unloaded module list
--- 省略 ---
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck C000021A, {fffff8a004a0e8b0, ffffffffc000012f, fffff8a0049edc00, 0}
Probably caused by : ntkrnlmp.exe ( nt!EmClientQueryRuleState+41b0 )
Followup: MachineOwner
---------
と入力して解析させます。
7: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
WINLOGON_FATAL_ERROR (c000021a)
The Winlogon process terminated unexpectedly.
Arguments:
Arg1: fffff8a004a0e8b0, String that identifies the problem.
Arg2: ffffffffc000012f, Error Code.
Arg3: fffff8a0049edc00
Arg4: 0000000000000000
Debugging Details:
------------------
--- 省略 ---
ADDITIONAL_DEBUG_TEXT: Verification of a KnownDLL failed.
MODULE_NAME: nt
FAULTING_MODULE: fffff800c5a80000 nt
DEBUG_FLR_IMAGE_TIMESTAMP: 51a966cd
BUGCHECK_STR: 0xc000021a_c000012f
DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT
CURRENT_IRQL: 0
ANALYSIS_VERSION: 6.3.9600.17029 (debuggers(dbg).140219-1702) amd64fre
LAST_CONTROL_TRANSFER: from fffff800c5df137a to fffff800c5ada440
STACK_TEXT:
--- 省略 ---
STACK_COMMAND: kb
FOLLOWUP_IP:
nt!EmClientQueryRuleState+41b0
fffff800`c5de2a24 cc int 3
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: nt!EmClientQueryRuleState+41b0
FOLLOWUP_NAME: MachineOwner
IMAGE_NAME: ntkrnlmp.exe
IMAGE_VERSION: 6.2.9200.16628
BUCKET_ID: WRONG_SYMBOLS
FAILURE_BUCKET_ID: WRONG_SYMBOLS
ANALYSIS_SOURCE: KM
FAILURE_ID_HASH_STRING: km:wrong_symbols
FAILURE_ID_HASH: {70b057e8-2462-896f-28e7-ac72d4d365f8}
Followup: MachineOwner
---------
da fffff8a0049edc00
と入力します。
7: kd> da fffff8a0049edc00 fffff8a0`049edc00 "SHELL32.dll"
この結果からブート時に問題を起こしているDLLが、SHELL32.DLLの可能性がありますので、C:\Windows\System32およびC:\Windows\SysWow64のSHELL32.DLLを正常に起動している他のWindows Serverからコピーするなどします。
コピー後再起動します。
再起動後も同様のエラーが発生した場合は、再度dmpをWinDbgします。
対象のDLLを確認し、DLLが変わっているようであれば、同様にコピーを繰り返します。
同じDLLでBSODになっている場合は残念ながらこの方法では回復はできません。