EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Custom Control I/O Codes

Also by EldoS: RawDisk
Access locked and protected files in Windows, read and write disks and partitions and more.
#27501
Posted: 11/29/2013 08:58:48
by Magnus Österlund (Basic support level)
Joined: 11/29/2013
Posts: 5

Is it possible to define my own custom Control I/O Codes as specified in

http://msdn.microsoft.com/en-us/library/windows/hardware/ff543023%28v=vs.85%29.aspx
#27502
Posted: 11/29/2013 09:05:12
by Eugene Mayevski (EldoS Corp.)

Is your question related to CBFS in any way?


Sincerely yours
Eugene Mayevski
#27503
Posted: 11/29/2013 09:20:35
by Magnus Österlund (Basic support level)
Joined: 11/29/2013
Posts: 5

Yes, it is related to CBFS. But it is possible that I have misunderstood how it works.

If I understand it correctly, you can from the user code send messages to the driver with DeviceIOControl and attach a IRP_MJ code to get anything done or get information. There are predefined Windows codes. But according to the link I sent in the question, it should be able to define your own codes. I want to use this to be able to send custom commands to the file system.

But I can also have completely misconstrued everything.
#27504
Posted: 11/29/2013 09:28:44
by Eugene Mayevski (EldoS Corp.)

Nope, you are digging too deep and probably got it wrong. Callback File System lets you handle filesystem requests in user-mode thus creating a virtual filesystem.

Maybe if you describe what you need to accomplish, we will be able to recommend some of our products.


Sincerely yours
Eugene Mayevski
#27506
Posted: 11/29/2013 09:56:45
by Magnus Österlund (Basic support level)
Joined: 11/29/2013
Posts: 5

We manage a real-time system from the 80's. The system is nowadays running on Windows in an emulator we have developed (which works much like VMWare). The problem is that there is no easy way to access the file system in the system.
We therefore intend to extend the emulator so that it mount the file system as a virtual file system in Windows. We then want to share this virtual file system on the network so we can access the Real-time file system from network computers.

The file system is very odd. Folders and files have several attributes that do not exist in Windows. And to be able to work with the file system, we must be able to perform some special operations (eg we must be able to defrag folders). We are thinking of developing a client application, or a shell extension to see this extra information and perform these special features on the file system.
#27507
Posted: 11/29/2013 10:12:58
by Eugene Mayevski (EldoS Corp.)

Thank you for detailed description . As I understand, that was your post on StackOverflow recently.

As Callback File System doesn't keep data by itself, but "resends" filesystem requests back to the user mode, it is not feasible to control the actual data (eg. defragment folders) via the filesystem. You can have direct control by implementing direct communication between the data "server" (either the one that serves requests coming from CBFS or even the one that communicates with your old system) and a client application (shell extension, whatever).

Sending IO control codes to the filesystem and then getting them back from CBFS would be an overkill in your scenario. Also it's not possible at the moment (it's not clear from design point of view how to marshal the data passed with the request).


Sincerely yours
Eugene Mayevski
#27508
Posted: 11/29/2013 10:30:24
by Magnus Österlund (Basic support level)
Joined: 11/29/2013
Posts: 5

Yes, it was me who asked on stack overflow. It is no trivial matter, and I am trying to investigate how best to solve this.

We can always use another protocol to send commands from the client to the server. So really, there is no requirement. But it would have been nice to be able to send commands from the client to the server via a single protocol instead of mixing up several different protocols. But if that is not possible, I have to accept it.

But is it possible to link the special attributes to the files and folders?
#27509
Posted: 11/29/2013 10:39:38
by Eugene Mayevski (EldoS Corp.)

Quote
Magnus Österlund wrote:
We can always use another protocol to send commands from the client to the server. So really, there is no requirement. But it would have been nice to be able to send commands from the client to the server via a single protocol instead of mixing up several different protocols. But if that is not possible, I have to accept it.


You might want to look at MsgConnect - it's fast and easy to use (it's very similar to windows messages but also works across network).

Quote
Magnus Österlund wrote:
But is it possible to link the special attributes to the files and folders?


Windows APIs don't have a way to access or modify custom attributes, so for custom attributes you again would need to use some other communication channel.

BTW I'll add the idea for custom IRPs to the wish list now.


Sincerely yours
Eugene Mayevski
#27512
Posted: 11/29/2013 10:53:28
by Magnus Österlund (Basic support level)
Joined: 11/29/2013
Posts: 5

But is it not possible to use something like "NTFS Alternate Data Streams" or "Extended file attributes" to send extended data to the client?

Thank you for adding custom IRPs to the wish list. :-)
#27513
Posted: 11/29/2013 11:04:20
by Eugene Mayevski (EldoS Corp.)

Not extended data attributes, no. Alternate data streams can work and CBFS supports them.


Sincerely yours
Eugene Mayevski
Also by EldoS: RawDisk
Access locked and protected files in Windows, read and write disks and partitions and more.

Reply

Statistics

Topic viewed 2420 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!