How to solve PNP_DETECTED_FATAL_ERROR (ca) ?

Hi all

I am using an application to restart the Device with the help of “setupdi…”
functions. After I send “DIF_PROPERTYCHANGE”, the device gets reenumerated.
After that If I check all the devices that are enumerated , then I find two
instances rather than one instance . Can anybody tell me what I should do
to get rid of those previous links .

After doing the plug in plug out and restart programatically for three or
four times , the PnP manager crashes with “0x000000ca” error ( which is
“multiple device objects found”) . I see the device gets completely unloaded
in the debugger , even after that, the system crashes with this error .

Any solution for this problem.

Thanks in advance.
sri.

It depends on the version of NT you are using. Prior to XP, there is a
“feature” such that if any driver in the stack returns an error to
IRP_MN_SURPRISE_REMOVAL then certain registry values in the Enum tree are
not tidied up which can lead to a duplicate PDO BSOD. This is true even if
you simply complete the surprise remove Irp with the incoming status since
it is initialized to NOT_SUPPORTED. The surprise remove Irp must be
completed successfully under all situations. I believe this is fixed in XP.

Other reasons for devices not going away include apps that open handles to
devices and don’t use RegisterDeviceNotification() to be told when the
device goes away - until the app closes its handle(s) the devices wont
actually go away.

You might also have a bug in the driver such that it neglects to call
IoSetDeviceInterfaceState(FALSE) for any interfaces it defines in the
surprise remove case.

/simgr

-----Original Message-----
From: Deevi, Srinivasa [mailto:xxxxx@microtune.com]
Sent: Thursday, December 19, 2002 12:31 PM
To: NT Developers Interest List
Subject: [ntdev] How to solve PNP_DETECTED_FATAL_ERROR (ca) ?

Hi all

I am using an application to restart the Device with the help of “setupdi…”
functions. After I send “DIF_PROPERTYCHANGE”, the device gets reenumerated.
After that If I check all the devices that are enumerated , then I find two
instances rather than one instance . Can anybody tell me what I should do
to get rid of those previous links .

After doing the plug in plug out and restart programatically for three or
four times , the PnP manager crashes with “0x000000ca” error ( which is
“multiple device objects found”) . I see the device gets completely unloaded
in the debugger , even after that, the system crashes with this error .

Any solution for this problem.

Thanks in advance.
sri.


You are currently subscribed to ntdev as: xxxxx@stratus.com
To unsubscribe send a blank email to %%email.unsub%%