EM64T processor filter bug?

I have a filter that’s been attaching itself fine for many months to VDOs created by a file system mount, but when I try to attach in a Gateway server I get the error:

“Processor driver does not support IRP_MN_SURPRISE_REMOVAL.”

The only difference I see between this Gateway server and all the other servers I work with is that the Gateway server uses a Pentium D EM64T Capable processor.

The error is occurring after my FsControlMountVolumeCompleteWorker routine is called. The Irp being passed in has MJ = IRP_MJ_FILE_SYSTEM_CONTROL and MN = IRP_MN_QUERY_REMOVE_DEVICE. This is also what comes back during a good attach with a non-Gateway machine, so the problem isn’t the Irp. The stack dump leading to the error is:


f78ee738 8082616f 00000003 00000000 0000004c nt!RtlpBreakWithStatusInstruction

f78ee784 80827044 00000003 f78eebaf f757d5fb nt!KiBugCheckDebugBreak+0x19

f78eeb1c 80827451 0000004c 00010000 f78eeb64 nt!KeBugCheck2+0x5b2

f78eeb3c f757d72a 0000004c 00010000 f78eeb64 nt!KeBugCheckEx+0x1b

f78eebb4 8081dce5 88c13958 88aa3e70 f78eec44 intelppm!ProcessorDispatchPnp+0x12a

f78eebc8 8090caac 88d6ab80 88d6ab80 88d80ee0 nt!IofCallDriver+0x45

f78eebf4 8090cd15 88c13958 f78eec20 00000000 nt!IopSynchronousCall+0xbe

f78eec48 8090d904 88d6ab80 00000017 e1666348 nt!IopRemoveDevice+0x97

f78eec64 8090e8e8 00000307 e1666348 00000000 nt!IopSurpriseRemoveLockedDeviceNode+0x90

f78eec78 8090e95f 88d80ee0 00000003 e1666348 nt!IopDeleteLockedDeviceNode+0x24

f78eecac 80910600 88d6ab80 02666348 00000003 nt!IopDeleteLockedDeviceNodes+0x3f

f78eed40 80910b8e f78eed7c 88d963ec e1760d40 nt!PiProcessQueryRemoveAndEject+0x4f0

f78eed5c 80910dbc f78eed7c 88d9b8d0 808ae5fc nt!PiProcessTargetDeviceEvent+0x2a

f78eed80 8087f925 88bd0080 00000000 88d9b8d0 nt!PiWalkDeviceList+0x1d2

f78eedac 80948bb2 88bd0080 00000000 00000000 nt!ExpWorkerThread+0xeb

f78eeddc 8088d4d2 8087f83a 00000001 00000000 nt!PspSystemThreadStartup+0x2e

00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16


I suspect that the new EM64T processor driver just doesn’t know how to handle this removal that shows up normally during a filter mount.

Has anyone else seen this or have any suggestions?