Jump to content











Photo
- - - - -

Announcing open source virtual SCSI miniport driver


  • Please log in to reply
147 replies to this topic

#51 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1857 posts
  • Location:Nantes - France
  •  
    France

Posted 02 October 2013 - 08:46 PM

version 0.4 : cosmetic work!

 

last for the day :)

 

 

 

Attached Thumbnails

  • mount.png

Attached Files


  • misty likes this

#52 misty

misty

    Silver Member

  • Developer
  • 625 posts
  •  
    United Kingdom

Posted 02 October 2013 - 10:12 PM

@olof
This is yet another fantastic tool to add to my collection - ImDisk has been my favourite virtual drive tool since you made it available on the forum. It looks like I'll also be using this in the future too!

@erwan.l
Tested in Windows 7 (x86) - appears to be working fine - once I remembered to run as administrator! Thanks - I would not have got around to testing Olof's work without your GUI due to the .NET requirements.

 

:cheers:  to both of you!

 

Regards,

 

Misty
 



#53 Olof Lagerkvist

Olof Lagerkvist

    Gold Member

  • Developer
  • 1331 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 02 October 2013 - 10:35 PM

@olof
This is yet another fantastic tool to add to my collection - ImDisk has been my favourite virtual drive tool since you made it available on the forum. It looks like I'll also be using this in the future too!



Thank YOU for all your useful work. I have used MiniXP now and then and find it really useful. I have used ImDisk with MiniXP a lot and now it is probably time to try to use this driver with it as well. I would guess that it would be easier to make it based on Server 2003 instead though, due to storport.sys not being supported by XP kernel.
 
 

@erwan.l
Tested in Windows 7 (x86) - appears to be working fine - once I remembered to run as administrator! Thanks - I would not have got around to testing Olof's work without your GUI due to the .NET requirements.


I am too very glad that someone makes a non-.NET control application. It will of course mean more possible usages and make it an interesting project for more people. It will not be possible to mount other image file formats than raw, but that could of course still be useful in many cases.
 

:cheers:  to both of you!


Thanks, same to you B)

#54 wimb

wimb

    Gold Member

  • Developer
  • 2281 posts
  •  
    Netherlands

Posted 03 October 2013 - 06:42 AM

The Arsenal driver and GUI are working OK in XP.

 

Thanks Olof and Erwan :cheers:

 

Mini XP VHD can be mounted and is visible as drive Q: in Disk Management :)

 

ISO can be mounted, but is not recognised.

Disk Management thinks it is a harddisk and it wants to Initialize the MBR :ph34r:

May be better not to allow ISO as selection.

 

Might it be possible to use ISO in future .... ?

 

Arsenal_1.png



#55 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1857 posts
  • Location:Nantes - France
  •  
    France

Posted 03 October 2013 - 07:17 AM

@wimb, starting with windows8, as it is natively supported, i could easily mount the iso but it would be best for sure if this feature could come from the Arsenal driver itself.

Probably a silly idea but could playing with the offset (i hardcoded 0 as default) could help there?

Probably not as mounting an iso is probably more complex than just mounting an imafile file at a different offset...



#56 Blackcrack

Blackcrack

    Frequent Member

  • Advanced user
  • 295 posts
  •  
    Germany

Posted 03 October 2013 - 07:19 AM

:cheerleader: I look forward to this, this  is really good and are subsequently reactos.org also fully the possibilities also from Win7, mounting from emulated harddisks or maybe also encryptet harddisks .. :cheerleader:

and this in Reactos also ... yea :good: :fine:

 

best regards

Blacky
 



#57 Olof Lagerkvist

Olof Lagerkvist

    Gold Member

  • Developer
  • 1331 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 03 October 2013 - 07:23 AM

Probably a silly idea but could playing with the offset (i hardcoded 0 as default) could help there?
Probably not as mounting an iso is probably more complex than just mounting an imafile file at a different offset...


Offsets has nothing to do with it. CD/DVD devices are different kinds of SCSI devices. The driver would need to show a different device type for the OS and answer other SCSI commands, compared to hard disks.

#58 wimb

wimb

    Gold Member

  • Developer
  • 2281 posts
  •  
    Netherlands

Posted 03 October 2013 - 08:33 AM

It will be very nice if ISO support can be added to the Arsenal driver :)

 

It would also be interesting if we can use the Arsenal driver to make RAMDISK

 

Would that be possible as well ?



#59 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1857 posts
  • Location:Nantes - France
  •  
    France

Posted 03 October 2013 - 08:54 AM

And if you add an iscsi initiator feature next to that then we have the perfect tool :)

 

Helas my c++ and kernel mode skills are very low so I would not be able to help there.



#60 Olof Lagerkvist

Olof Lagerkvist

    Gold Member

  • Developer
  • 1331 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 03 October 2013 - 09:00 AM

It would also be interesting if we can use the Arsenal driver to make RAMDISK
 
Would that be possible as well ?

 

Memory disk should already be possible in the same way as for ImDisk. Just specify a size and no filename to create a virtual memory backed virtual disk. To create a virtual disk backed by physical RAM in all cases, specify a size and use \\.\awealloc as filename. (The latter needs awealloc driver to be installed and loaded, of course. For example, install ImDisk.)
 

And if you add an iscsi initiator feature next to that then we have the perfect tool :)

 

iSCSI is probably more a matter of communication translation. Both this driver and iSCSI are based on SCSI commands, which is pretty much a widely accepted standard. So I guess that is probably a lot easier than for example to implement CD/DVD support.
 



#61 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1857 posts
  • Location:Nantes - France
  •  
    France

Posted 03 October 2013 - 09:04 AM

Memory disk should already be possible in the same way as for ImDisk. Just specify a size and no filename to create a virtual memory backed virtual disk. To create a virtual disk backed by physical RAM in all cases, specify a size and use \\.\awealloc as filename. (The latter needs awealloc driver to be installed and loaded, of course. For example, install ImDisk.)
 

 

iSCSI is probably more a matter of communication translation. Both this driver and iSCSI are based on SCSI commands, which is pretty much a widely accepted standard. So I guess that is probably a lot easier than for example to implement CD/DVD support.
 

 

I'll play with ramdisk this evening at home to see if I can add support for this in my GUI.

 

Sounds good around iscsi : means we may see that coming at some point.



#62 wimb

wimb

    Gold Member

  • Developer
  • 2281 posts
  •  
    Netherlands

Posted 03 October 2013 - 09:15 AM

@Olof - Interesting that RAMDISK will be possible already.

@Erwan - Nice that you are going to add RAMDISK support to your GUI

 

After Install of SetupVirtualCloneDrive5440.exe then Mounting of ISO is possible.

ISO Drive Q: is visible in Disk Management. 

 

So it might be possible to add ISO support to the Arsenal driver in a similar way .... ?

 

Arsenal_2.png

 

:cheers:

 



#63 Olof Lagerkvist

Olof Lagerkvist

    Gold Member

  • Developer
  • 1331 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 03 October 2013 - 09:37 AM

@Olof - Interesting that RAMDISK will be possible already.

@Erwan - Nice that you are going to add RAMDISK support to your GUI

 

After Install of SetupVirtualCloneDrive5440.exe then Mounting of ISO is possible.

ISO Drive Q: is visible in Disk Management. 

 

So it might be possible to add ISO support to the Arsenal driver in a similar way .... ?

 

attachicon.gifArsenal_2.png

 

:cheers:

 

Yes, should be possible, of course. Someone just need to do some work in the driver. That is, implement device type READ_ONLY_DIRECT_ACCESS_DEVICE along with handling CD/DVD specific requests such as SCSIOP_READ_TOC and SCSIOP_GET_CONFIGURATION. And hopefully do that without breaking compatibility with the rather annoyingly touchy XP version... ;)


  • wimb likes this

#64 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1857 posts
  • Location:Nantes - France
  •  
    France

Posted 03 October 2013 - 04:50 PM

version 0.5

 

-Can now make a virtualdisk out of memory.

It does not use awealloc for now.

I could make it an option if needed.

 

/Erwan

Attached Thumbnails

  • mount.png

Attached Files


  • Olof Lagerkvist likes this

#65 wimb

wimb

    Gold Member

  • Developer
  • 2281 posts
  •  
    Netherlands

Posted 03 October 2013 - 05:18 PM

Thanks for new version :cheers:

 

RAMDISK can be made, but is not yet initialised. :(

Manually I created NTFS formatted partition and that is working OK :)

RAMDISK is visible in Disk Management as Drive R:

 

It would be nice if the created RAMDISK would have already NTFS formatted partition.

 

Arsenal_3.png



#66 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1857 posts
  • Location:Nantes - France
  •  
    France

Posted 03 October 2013 - 05:25 PM

Good idea indeed.

Now i need to find a way to link my devicenumber with a physical drive to initialise it and eventually format it.
May be Olof can put me on the right path.

Will start looking.

Erwan



#67 Olof Lagerkvist

Olof Lagerkvist

    Gold Member

  • Developer
  • 1331 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 03 October 2013 - 05:40 PM

Good idea indeed.

Now i need to find a way to link my devicenumber with a physical disk to initialise it and eventually format it.
May be Olof can put me on the right path.

Will start looking.

 

Sorry, but I don't know of any more practical way than trying to open each \\.\PhysicalDriveN device and send IOCTL_SCSI_GET_ADDRESS to each of them and pick the first one that matches.

 

But there should probably be better ways to do this. For example I would guess that it would be possible to use setupapi in some way to follow the plug-and-play device tree from the adapter down to the disk objects. But I have never dived into that.



#68 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1857 posts
  • Location:Nantes - France
  •  
    France

Posted 03 October 2013 - 06:24 PM

Sorry, but I don't know of any more practical way than trying to open each \\.\PhysicalDriveN device and send IOCTL_SCSI_GET_ADDRESS to each of them and pick the first one that matches.

 

But there should probably be better ways to do this. For example I would guess that it would be possible to use setupapi in some way to follow the plug-and-play device tree from the adapter down to the disk objects. But I have never dived into that.

 

Will try that.

 

Or use IOCTL_STORAGE_QUERY_PROPERTY and look for a ProductID = "Virtual" and BusType="Fibre"


  • Olof Lagerkvist likes this

#69 TheHive

TheHive

    Platinum Member

  • .script developer
  • 4128 posts

Posted 04 October 2013 - 07:53 AM

Can you add

Auto download or extract devcon.exe and put it where it needs to be so the driver can be installed.

I forgot what scripts do that. I think ive seen some scripts auto do it when building pe's.

Devcon exe.jpg

 

 

Some icons you might want to use.

http://www.softicons...ch=RAM&x=30&y=8

http://www.softicons.../ram-drive-icon

http://www.softicons.../drive-ram-icon

http://www.bijusubha...delete-icon-set

http://www.softicons...ch=plus&x=0&y=0



#70 TheHive

TheHive

    Platinum Member

  • .script developer
  • 4128 posts

Posted 04 October 2013 - 08:05 AM

Mount Gui App Icon

Mount Icons.jpg

 

Mount.png

 

Attached File  Mount.ico   84.33KB   289 downloads

 

 



#71 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1857 posts
  • Location:Nantes - France
  •  
    France

Posted 04 October 2013 - 03:18 PM

Hi TheHive,

 

Thanks for the icons !

The one I used definitely made my eyes tear blood... I am an awful designer when it comes to front end :(

 

I also may need a more meaningfull name ('mount' is a bit generic...).

 

About the driver install, I believe we should definitely propose 1/propose a nsi script or 2/integrate drvinst.dll as pointed out by Wonko.

I might give a try to drvinst.dll (low prio thus) but will not have time to dive in the nsi script.

 

Regards,

Erwan



#72 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1857 posts
  • Location:Nantes - France
  •  
    France

Posted 04 October 2013 - 05:35 PM

version 0.6

 

As requested by Wimb, after a memory drive is created, the app will propose to initialise the drive (i.e createdisk+createpartition).

For this I reused functions from my app CloneDisk.

After this, windows will propose to format it.

 

The interface also displays the mathing physicaldrive using IOCTL_SCSI_GET_ADDRESS as advised by Olof.

 

And I used TheHive program icon.

Need to look at (or rather make my choice) between buttons hinted by TheHive.

 

/Erwan

Attached Thumbnails

  • mount.png

Attached Files



#73 ZEE

ZEE

    Member

  • Members
  • 79 posts
  •  
    Portugal

Posted 04 October 2013 - 06:50 PM

GREAT DUDE...

You always come up up with great things...

...

I dont need to say that imDisk is a great tool... everybody knows that...

I hope this one go the same way...

...

Just when I was switching to AOE... Well... let's gave again some time to iSCSI...

 

Thanx... you're the Man... ;-)



#74 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1857 posts
  • Location:Nantes - France
  •  
    France

Posted 04 October 2013 - 07:11 PM

GREAT DUDE...

You always come up up with great things...

...

I dont need to say that imDisk is a great tool... everybody knows that...

I hope this one go the same way...

...

Just when I was switching to AOE... Well... let's gave again some time to iSCSI...

 

Thanx... you're the Man... ;-)

 

All credits goes to Olof there.

I am merely offering a portable GUI :)

 

An iSCSI initiator (and why not AOE) initiator would be super cool indeed.

 

Thus now that I have some code to pilot a driver, I am wondering If I could not reuse it with the AOE driver (from winaoe or winvblock).

Maybe disgressing there...

 

/Erwan



#75 TheHive

TheHive

    Platinum Member

  • .script developer
  • 4128 posts

Posted 04 October 2013 - 07:59 PM

Names

 

GIM - Great Image Mounter
IM - Image Mounter
AIM - An Image Mounter
AIMG - Arsenal Image Mounter Gui
Gmail - Greatly Mounts Alot Images Lol!

IMount - Based on ImDisk

 

Imount.jpg

Imount.png

Attached File  IMount.ico   84.33KB   311 downloads

 






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users