Win32 FindFirstFIle vs "file-list-directory-iter" API Speed and MultiThreading
2018-12-05 04:57 AM
This should be deleted , I recreated the question under the SDK forum at https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Win32-FindFirstFIle-API-Vs-quot-File-List-Directory-Iter-quot-API-Spe...
I am trying to iterate over 7 Mode and C-DoT Files, Folders And Attributes In All Volumes. I see that all discussions in the community refer to using "file-list-directory-iter" API. I wonder what would be performance difference if I just used the Win32 API "FindFirstFile" since NetApp already supports this function via CIFS shares. below is part of the SDK html document for the Win32 APIs.
Note that I am trying to write a high performance Directory Walker , using "FindFirstFile" and "FindNextFile" I can assign found directories I found to other threads while continue iterating other files. multithreading will boost the scanning performance. can I achieve multithreading using the ONTAP API ?
So Two questions :
1- "FindFirstFile" vs "file-list-directory-iter' which one is better in performance in general ?
2- can I multithread the "file-list-directory-iter' ?
" The following Win32 API calls are supported on Network Appliance filers running CIFS. This list is Network Appliance confidential. Third parties may not share it with other 3rd parties. Caution: While we have attempted to be complete here, this is almost certainly a partial listing. There is no one-to-one relationship between Win32 APIs and the calls the filer sees on the wire from the client, so it is difficult to enumerate for sure all the APIs that work. The best way to tell if a routine not mentioned here is supported is to add a call to it into previously working code, and see if the call succeeds or not. Please send any needed corrections you may discover to email@example.com.
The authoritative source of information for every routine mentioned herein is the MSDN article(s) pertaining to that routine. Failure of the filer to obey the semantics given in Microsoft's documentation is nearly always a bug, and should be reported as such.
Note: Win32 and Windows are trademarks of Microsoft Corporation."