"Stop error code 0x000000B8 (ATTEMPTED_SWITCH_FROM_DPC)" error occurs in a Windows 2000 cluster

IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:
256986 Description of the Microsoft Windows Registry


The cluster node performs a random bugcheck and you receive either of the following error messages:

STOP 0x000000b8
ATTEMPTED_SWITCH_FROM_DPC (b8) A wait operation, attach process, or yield was attempted from a DPC routine.

This is an illegal operation and the stack track will lead to the offending code and original DPC routine.
STOP 0x000000D1
When these error messages occur, the cluster fails over as expected.

The following text is the stack track for the Stop 0x000000b8 error:
f2027320 8042a43b 00000003 f2027368 00000000 nt!RtlpBreakWithStatusInstruction
f2027350 8042aa2e 00000003 85e7e588 85e7e588 nt!KiBugCheckDebugBreak+0x31
f20276dc 8042a2bd 000000b8 00000000 00000000 nt!KeBugCheckEx+0x390
f20276f4 8046a076 000000b8 ffffffff 00000202 nt!KeBugCheck+0xf
f2027704 80469dc9 f2027740 85e7e5f4 85e7e588 nt!ScPatchFxe+0x34
f2027718 8042bd4d 00000000 85b603f8 00000000 nt!KiSwapThread+0x1b1
f2027740 8041516b 855a22e8 00000000 00000000 nt!KeWaitForSingleObject+0x1a3
f202777c 804146df 85b603f8 85b603f8 f20277a0 nt!ExpWaitForResource+0x2d
f202778c 80414733 80065410 85b603f8 85cece00 nt!ExpAcquireResourceExclusiveLite+0x7b
f20277a0 bff569fd 85b6042c 00000001 e204f3c8 nt!ExAcquireResourceExclusiveLite+0x45
f20277b8 bff587fe 85b603e8 e204f3c8 f20277e7 KSecDD!KSecDereferenceListEntryPaged+0x21
f20277e8 bff59cde e204f3c8 bf237874 00000001 KSecDD!KSecDereferenceListEntry+0x1c
f202780c bff585fd e204f3c8 f202785c 00000000 KSecDD!NtLmVerifySignature+0x75
f2027874 bf233f61 857272c8 00000001 00000010 KSecDD!VerifySignature+0x33
f2027890 bf235e22 857272c8 00000001 00000001 clusnet!CcmpReceivePacketHandler+0x25
f20278cc bf28cfb6 857272c8 00000016 f2027934 clusnet!CnpTdiReceiveDatagramHandler+0x17a
f2027958 bf28d41e 8568ee48 2e01010a f2020f0d tcpip!UDPDeliver+0x256
f20279b4 bf28d89b 85ca2488 2f01010a 2e01010a tcpip!UDPRcv+0x27b
f2027a00 bf28d757 bf28d32d 85ca2488 85cece1e tcpip!DeliverToUser+0xf9
f2027ab8 bf28c805 85ca2488 85cece32 00000030 tcpip!IPRcvPacket+0x581
f2027af8 bf28c866 00000000 85cea858 85cece10 tcpip!ARPRcvIndicationNew+0x17b
f2027b34 bfec179a 85c39dc8 00000000 85d12510 tcpip!ARPRcvPacket+0x5c
f2027b8c bfe1f3bb 85d4ba00 f2027bac 00000002 NDIS!ethFilterDprIndicateReceivePacket+0x2ea
The following text is the stack track for the Stop 0x00000D1 error:
ChildEBP RetAddr Args to Child
f6823de4 bfeca768 e2b52008 4d4c544e 00000000 KSecDD!KSecReferenceListEntry+0x10
f6823e10 bfec90ff e2b52008 00000000 f6823e60 KSecDD!NtLmMakeSignature+0x16
f6823e24 bf8b6434 bf8ba87c 00000000 f6823e60 KSecDD!MakeSignature+0x33
f6823e7c bf8b4df2 00000001 00004bb7 00004bb7 clusnet!CxSendHeartBeatMessage+0xc4
f6823eb0 80431d00 bf8baae0 00000000 7057917a clusnet!CnpHeartBeatDpc+0x348
f6823fb0 80431be6 fb658c1c ffdff848 ffdff000 nt!KiTimerListExpire+0x112
f6823fdc 80464a18 80482e60 00000000 00177b05 nt!KiTimerExpiration+0xb6
f6823ff4 80469e3b be87bd44 020f7c78 0026def8 nt!KiRetireDpcList+0x47


This problem may occur if the Clusnet.sys driver is loaded when the computer starts, which is at the wrong time. The load time may have been changed by a third-party vendor.


To resolve this problem, obtain the latest service pack for Microsoft Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
260910 How to Obtain the Latest Windows 2000 Service Pack
In Windows 2000 Service Pack 4 (SP4), Windows will allow the cluster driver to fail to load, and an event ID message will be logged. When the Cluster service starts, it will try to reload the driver. At that time, packages will be initialized, and the cluster will work as expected.

You can also perform the following procedure to resolve this problem.

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
  1. Start Registry Editor (Regedit.exe)
  2. Locate and then click the following registry subkey:
  3. Double-click the Start value, and then type 3 in the Value Data box.

    The default setting for this value is 3. This problem occurs when this value is set to 1.


Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft Windows 2000 Service Pack 4.