Dokan currently does not create a virtual hard disk for its filesystem (i.e. in Device manager, you dont see another disk drive). Anyone have any idea on how to start to correct that?
Dokany is the active fork of Dokan and bring the ability to create virtual drive.
Dokany have made big progress by implementing the mount manager of dokan. There is only the PnP part that is not totally implemented. When this will be added, you will see the dokan device in the device manager.
Representation in device manager requires a plug-n-play device driver. so you need to write one. Or use our Callback File System
Related
I have a 32GB USB drive that I am trying to use as both a boot drive for a ChromeOS version available from here, and to use the remaining space on the drive as I normally would, just for storage to be accessed via Windows or hopefully the ChromeOS.
I've tried partitioning it in various ways using EaseUS, but every time I've written the ChromeOS image to a partition with the Win32DiskImager, I can't access the larger partition I want as storage.
I feel like I'm missing something major here, can anyone shed some light on this for me?
Thanks!
when you make a bootable usb using ChromeOs image
When does resizing occur?
Partition resizing is initiated by the system, not by the user.
refer here for more information
Is there any way Not to detect USB from windows PC?
The USB device should not mount on windows PC ,It should be handled by my application..
Suggestions please...
As far as I know there is no way of stopping the mount on the windows PC, however, you could set it up to autorun so that when it is plugged it in attempts to launch your application. This answer has some information on how to do this: https://stackoverflow.com/a/255067
There is also the option to hide a drive in windows by removing is drive letter (http://www.howtogeek.com/97203/how-to-hide-a-drive-in-windows-so-that-no-one-will-know-its-there/) however, this is almost certainly going to stop your application from reading it too.
If this is for a specific security reason then perhaps you could look at encrypting the drive and allowing only the application to decrypt the data. Thus, whilst mounted in windows it will be of little use.
Sorry I couldn't be of much more help.
Microsoft provides a utility called devcon for free download.
It's a "Command Line Uility Alternative to Device Manager".
It can actually do many things that I won't get into here, but removing a plug & play device is a simple operation once you know the unique name of the device you want to manipulate.
Refer this to check how to work with it.
It sounds like you don't want your device to show up as a drive in My Computer. In that case, why are you using the Mass Storage Device class at all? You could make a custom, vendor-specific device and talk to it using control/interrupt/bulk transfers with WinUSB. You would need to change the Device's USB descriptors to indicate it is a vendor-specific device and not a mass-storage device.
I have a crypto USB device which is used to store PKI certificates including the private key.
It can be read/written to using the Microsoft Crypto APIs. And it is protected by a PIN. I am investigating if the device is in fact secure.
In my opinion, the security of the device hinges on how the PIN is used/stored. This is related to a different question I posted on crypto.stackexchange - https://crypto.stackexchange.com/questions/5929/crypto-usb-devices-where-is-the-pin-password-stored
When I insert the device into my USB slot, it presents itself as a CD drive containing a setup program which installs the driver/CSP middleware/UI for the device. After the setup program is run and I store certificates in the device, I still see only the setup program in Windows Explorer when I look at the drive assigned for the device.
So in order to prove that the device is secure or not secure, I want to access the raw data on the device. And I want to know what APIs on Windows, I can use to access the device bypassing the Crypto APIs.
Alternately are there tools to do the same?
One idea would be to boot into a Linux Live CD and view the drive contents that way. You could, for example, try one of the latest Ubuntu builds, all of which can be run from the CD without installing the operating system onto your Windows machine.
My theory is that when your device is accessed from Linux, the raw data will be available. When it is accessed from Windows, I suspect some kind of clever AutoPlay comes into effect in order to present your device as a CD drive.
I have one USB stick having FAT32 type file system.I really in need to dump and analyze that file system in the usb stick in windows or in linux platform.
My ultimate aim is to read the usb's hardware( ,type and manufacturer) information by reading that dump file.
You will not find the information you are looking for in the file system, those are embedded in the chip and are transmitted when the device gets plugged in. You will find all details in the device manager if you look up the details of the device.
Regarding your comment: It is irrelevant for the OS what the actual filesystem is, as the controller on the device controls the access to the actual flash memory. If the controller says that there are only 400mb to be accessed, you can only access 400mb. You either got a faulty stick or it's a fraud, you probably should check with the origin of it (ie. where you bought it). Sometimes, you can flash the device's firmware, for that the information you get in the device manager is enough. However, at most times, you are out of luck - return the stick if you can in that case.
there seem to be more and more questions that are answered by "why do you want to do that" instead of real information. Strange.
Here is an answer:
Don't use Windows. Use Linux, plug in the stick, and use 'dd' to dump partitions from the stick to files.
Cheers.
For those familiar with Linux, it is possible to create a module and register it as a block device. This allows the user to mount it as a regular disk (while all the block I/O is handled by the module, e.g. USB mass storage).
Is there a way to do this in Windows ? (Need to create a volume mountable by Windows. The raw data will come from propriety interface).
The easiest way (and it's not easy!) is to write a Storport Miniport driver, you can even do this with KMDF as well. The latest issue of OSR's "The NT Insider" has an article on how to do this, but it's not going to be any kind of easy.
You will learn a ton though, so if you're interested in kernel development, this is a good way to get started!
You can find some simple block device drivers at http://www.acc.umu.se/~bosse/ . Look at the FileDisk driver, which is a Windows equivalent of /dev/loop
Take a look at the Truecrypt project. They have a pretty good implementation of a virtual block device.