About $MFT, you may have a look at powerbasic code to get MFT filenames . This will give you an idea on how to access it. It should be not to hard to convert to purebaba. Here it is in action...
A more traditionnal way is to use the EnumDirTree() and EnumDirTreeCallBack() api.
EnumDirTree() is the fastest Windows search api I think.
This one return only filenames. I build an array with these filenames.
Then I get GetSystemInfo(SystemInfo) to get the count number of .dwNumberOfProcessors.
I start a thread for each processor. The threads job is to search in files... some text, the file time, the file size, etc, etc...
When a thread get a file, it mark is as done to make sure other threads will ignore this file.
GetFileTime(), GetFileAttributes(), GetFileSize()...
I don't build any index, so it is slower than Everything.
Still, it compares easily with UltraSearch and others...
Plus, it does exactly what I want, and this I like !
-