EldoS | Feel safer!

Software components for data protection, secure storage and transfer

callbackfs: BSOD upon running an executable.

Also by EldoS: CallbackDisk
Create virtual disks backed by memory or custom location, expose disk images as disks and more.
#5955
Posted: 04/21/2008 12:32:59
by Robin Astle (Basic support level)
Joined: 04/15/2008
Posts: 30

I modified the sample applications, now when I try to run an executable from it, I get a BSOD, the event log states the following:

Error code 1000008e, parameter1 c0000005, parameter2 805c1a78, parameter3 b3346a48, parameter4 00000000.

Anyone has seen this issue before? Or has a clue what might cause it?
When I google for the errorcode I don't get much further.
If you need additional information I'll be willing to provide it.

I'm using the C# sample.
#5957
Posted: 04/21/2008 12:58:00
by Eugene Mayevski (EldoS Corp.)

Please send us the report using helpdesk. See the help file for information about what should be included with the report. Briefly speaking, we need a small memory dump.


Sincerely yours
Eugene Mayevski
#5959
Posted: 04/21/2008 13:13:53
by Volodymyr Zinin (EldoS Corp.)

And if the BSOD is reproducible could you send us your sample application?
Thanks.
#6005
Posted: 04/23/2008 18:30:28
by Sid Schipper (Standard support level)
Joined: 03/14/2008
Posts: 285

I have seen this problem when I get an error that Throws an exception and I try to use MessageBox to put out a Windows message that contains strings that are no longer in context or have been freed by the memory manager. You must be very careful when using managed memory not to try to use freed memory, this seems to screw up the CBFS driver or some other Windows internal function in such a way as to cause the BSOD.
#6006
Posted: 04/24/2008 02:09:13
by Robin Astle (Basic support level)
Joined: 04/15/2008
Posts: 30

I submitted a support ticket including my code, they came back to me providing me with the following information:

Quote

The problem is in the GetOriginatorProcessName call which is called from OnRead callback. It isn't possible to call this function there. We will block it in the next build.
If it's necessary then call it from the OnCreate/OnOpen callbacks and save the obtained process name in FileHandleContext for using in the following callbacks.


Hereby I would like to congratulate you guys with your support! And warn everybody... don't call GetOriginatorProcessName in the OnRead callback.
#6008
Posted: 04/24/2008 02:26:49
by Eugene Mayevski (EldoS Corp.)

Quote
Robin Astle wrote:
don't call GetOriginatorProcessName in the OnRead callback.


We will care about this in the components in the next version.


Sincerely yours
Eugene Mayevski
#6029
Posted: 04/25/2008 11:28:28
by Sid Schipper (Standard support level)
Joined: 03/14/2008
Posts: 285

:?: What gives? I call GetOriginatorProcessName in my OnRead callback and it works just fine!
#6033
Posted: 04/25/2008 11:54:35
by Eugene Mayevski (EldoS Corp.)

The fact that something works doesn't guarantee that it will work. The problem is that in some cases GetOriginatorProcess* can cause the deadlock. As there's no reason to call GetOriginatorProcess* in OnRead/OnWrite callbacks (see below, why) we think it's safer just to block it.

As mentioned many times, the context that you create in OnOpen or OnCreate callbacks is passed to the corresponding OnRead and OnWrite callbacks. So if you call GetOriginatorProcess* in OnOpen callback, you can put the result to the context and take it back from context when you are in OnRead/OnWrite callback handler. This will be safer and faster than calling GetOriginatorProcess* there.


Sincerely yours
Eugene Mayevski
#6034
Posted: 04/25/2008 12:16:04
by Sid Schipper (Standard support level)
Joined: 03/14/2008
Posts: 285

:) OK with me.
Also by EldoS: CallbackFilter
A component to monitor and control disk activity, track file and directory operations (create, read, write, rename etc.), alter file data, encrypt files, create virtual files.

Reply

Statistics

Topic viewed 5301 times

Number of guests: 1, registered members: 0, in total hidden: 0




|

Back to top

As of July 15, 2016 EldoS Corporation will operate as a division of /n software inc. For more information, please read the announcement.

Got it!