Why does Explorer read files when I just browse the directory?
Explorer tries to obtain icons from file resources. That's why it performs reading of files during directory enumeration.
It isn't necessary to read a whole file, only a part that Explorer requests. Also it's possible to decrease the quantity of information being read. To do this, use the network type of mounting points. In this case Explorer minimizes the amount of requested information. Another option is to report files to have Offline attribute (FILE_ATTRIBUTE_OFFLINE). - Explorer doesn't read thumbnails for offline files. However, the attribute is visible to the user (Explorer displays an overlay image for offline files) so you might want to not use the attribute.
Also to increase productivity you can start caching of such information asynchronously at the time when Explorer opens the directory and use the already cached information in subsequent OnReadFile requests.