Replies: 4 comments 4 replies
-
Hi @W6AKP , This feels like there is invalid or incomplete (any of the requested fields) data returned through |
Beta Was this translation helpful? Give feedback.
-
Ok, I made some progress. When I tried to do the following from the cmd prompt, I got all files typed, EXCEPT login.com... And a trace resulted in these being returned. So, I ended up implementing FindFilesWithPattern, with basically the same code as FindFiles, but I do strict match, or "*".. Not great, but it helped debug that. I now get proper proper file properties in Windows. The command prompt cannot do a DIR, or switch to that drive / folder. But, type works. Notepad still can't open the files, but npp can. I wonder if the $ present in the files / directories is screwing up matching. --Ben |
Beta Was this translation helpful? Give feedback.
-
That is almost always how people solve these kinds of problems.
Then you probably have some issues with handling memory-mapped requests. These can turn up outside of CreateFile/Close/Cleanup calls and you will for example get requests directly to ReadFile/WriteFile with a file name. You will need to handle this scenario, in most cases by detecting that you do not have a context (from CreateFile) when ReadFile and WriteFile are called.
No, not likely. |
Beta Was this translation helpful? Give feedback.
-
Hello @LTRData! Ok, after more digging and messing around. I removed the VMS file versions for files with the max version. Makes them cleaner. That was aesthetic.. Here is another chain with ProcMon... That damn 0xc0000000 has been bugging me. Also, I NEVER see a read without a context. I have a breakpoint there, to try and find it. So, looking through my code, I find this gem. `Public Function GetVolumeInformation(<Out()> ByRef volumeLabel As String, <Out()> ByRef features As FileSystemFeatures, <Out()> ByRef fileSystemName As String, <Out()> ByRef maximumComponentLength As UInteger, ByVal info As IDokanFileInfo) As NtStatus Implements IDokanOperations.GetVolumeInformation
End Function Other than the obvious problem of being VB, I was returning Error.. Change that to Success, and LOTS of problems go away. The volume name shows up, file system type, etc. Oddly, the free space and size were correct before. So, I'll keep playing, and making things work better. Thank you to @Liryna and @LTRData for their time. And, I'm sorry for this stupid error. I had a feeling it was something dumb. One messed call ruins it all! I suppose, could someone patch RFS.cs?
Thank you, again! I was looking at pulling some code from long ago from FTPDrive, which is floating around out there, for this same idea. This project is awesome! --Ben |
Beta Was this translation helpful? Give feedback.
-
Hello. I'm just getting started, so I'm still learning.
Anyways, I'm trying to make a read-only mounter for VMS ODS2 disks. I have code to read the disk image and all that. Now I'm gluing the two together... I can browse the disk, and stuff seems to work, well enough. Directory listings returned via FindFiles seem good. File dates / sizes look good.
However.. When I open a file in Notepad, it fails saying it cannot find the file. If I use notepad++, it opens the file just fine. If I try to browse from the command prompt, I get "The system cannot find message text for message number 0x13d in the message file for System."
If I try to dir the file, I get the same.
F:>dir "T:\VMS$COMMON\SYSMGR\SYLOGIN.COM;1"
The system cannot find message text for message number 0x13d in the message file for System.
If I try to view the windows properties on the file, I get a huge size, which is related to another file, say "T:\VMS$COMMON\SYSMGR\ACCOUNTNG.DAT;1" (The first file in the directory).
However, if I type it... F:>type "T:\VMS$COMMON\SYSMGR\SYLOGIN.COM;1" All kinds of weird stuff goes on!
I've put tracing in my app, and what happens is a CreateFile is called for "T:\VMS$COMMON\SYSMGR\ACCOUNTNG.DAT;1", and then ReadFile requests are sent, with data being returned. BUT, then other CreateFile / ReadFile requests start coming through!
The Process Monitor trace is odd, too. I filtered to path contains ;1 (a VMS thing). A previous run showed the path as t:, but it switched to a device. I originally used r:, but odd cached files / directories from another disk image kept coming up / being queried. That is odd, too.
Any ideas? I can post code, but it is in vb.net..
Thank you!
Beta Was this translation helpful? Give feedback.
All reactions