i'm making a disk(volume) backup/restore system.
i would unmount volume before backup,
but the system volume can not be unmounted.
so the change or access of system volume is worry for me while that system volume is backup.
is it possible that detect which disk sector or ntfs cluster was changed realtime?
that can be filter driver, can it be possible?
So I have a driver that does a child enum on the ACPI PDO. It gets back the methods, and then does an evaluate. There are two ways of doing this, evaluateex and evaluate. Oddly for exactly the same methods they return different data, not different in value, but the ex evaluation data has a 4 byte padding after each package, the eval method doesent. This is for _PSS data.
What is also odd that if the eval is called during IRP_MJ_START_DEVICE the _PCT data is also different to that obtained later on so I assume even then the device hasnt completely started. The _PCT at IRP_MJ_START_DEVICE shows IO port access, but later shows FFHW as the acces.
What is also interesting is that attaching to the PDO outside of AddDevice causes enum children to returns STATUS_NOT_SUPPORTED, which is odd, since the only interface to the PDO is the PDO pointer and the Irp, how DOES the PDO know the Irp is being sent from a DO attached outside of AddDevice? Odd stuff indeed.
Anyway it doesnt affect the functioning of the driver, it controls COU speed OK, but this variability of what the PDO is returning is odd and I cant exmplain it. Anyone have any idea why this is?
First thing, Has you PIC got built in USB hardware or are you trying to do this from basics with I/O lines? If it's the latter, go for the first. If you can't consider finding a USB chip and connecting it to your PIC. Its much much easier to get these things done in hardware than try to do them your self. If you can't do that, consider a PIC with Rs232 and get a USB to Rs232 converter.
Unless you're on the real cutting edge others will have done this before you. It's just a matter of finding them. I remember there are quite a few PIC code sites, though be wary of taking code at face value. I remember seeing a book on coding for USB in my local bookshop a few years ago, which takes, as you request, the developers perspective rather than a protocol specifier's perspective. so have a look.
Obviously you can do this yourself, Its just harder as you already know and you need time, information and patience.
PIC24FJ256GB210 if you like long strings of letters and digits.
It has a USB port already built in.
I believe it already has its SIE (Serial Interface "Engine" (eyes roll, etc.)) already built into the module.
Microchip (purportedly) has working source code on their site. I have looked at that code. There is a good chance that the person who wrote it knows what some of the statements are doing, and quite possibly why they are doing it.
What I'm really trying to figure out is: Who gives What byte to Whom in What order to make What action occur on What part of What machine ?
I see the spec you linked to is called 'usb made simple' and I think as far as it goes that's fine.
But from what I saw at a glance you need to find the PIC Serial Engine interface, and depending on its level, probably get into the detail of loading registers and setting bits etc. Nothing I can really advise here part from reading the detailed PIC Serial Engine docs. Its possible that the USB Enginer interface is similar to, say, the PIC Rs232 Engine interface etc so it may help to look at code for other Engine types.