I did some experimenting to see if I could simplify the test by
restricting the search to a single directory and its subdirectories.
The goal was to reduce the number of files being examined and,
therefore, reduce the elapsed time for a given test.
My initial pass was with both "Use 64-bit IFilters for content
search" and "Fall back to IFilters of the other bitness" unchecked.
I ran the search and quickly encountered the Divide by Zero error on
several (but not all) .EML files.
Test 2:
"Use 64-bit IFilters for content search" checked and "Fall back to
IFilters of the other bitness" unchecked. The test completed with
no errors and a few of the .EML files were successfully found.
Test 3:
"Use 64-bit IFilters for content search" checked and "Fall back to
IFilters of the other bitness" checked. The test completed with no
errors and the same .EML files were successfully found.
Test 4:
"Use 64-bit IFilters for content search" unchecked and "Fall back to
IFilters of the other bitness" checked. The test failed with the
Divde by Zero error.
I ran another variant of Tests 2 and 3, with the difference being to
broaden the search across more directories. For these tests
XY64contents.exe entered a permanent Wait while processing a PDF (it
was the same PDF in both cases). I used Process Explorer to take a
peek at the status of XY64contents.exe. It had four threads, each of
which was in a "UserRequest" Wait State and the wait condition was
never satisfied, i.e., the wait was permanent.
I've never had the need to write any code which directly invoked
IFilters, so I needed to learn a little about the architecture,
implementation and usage model.
I used information I found at these Microsoft URLs to gain a bit of
an understanding of IFiletrs in general and how to determine the
relationship between file types and the corresponding IFilters:
Code: Select all
https://learn.microsoft.com/en-us/windows/win32/search/windows-search
https://learn.microsoft.com/en-us/windows/win32/search/-search-ifilter-about
Spelunking through the Windows Registry, I believe these are the
IFilters on my system for .eml and .pdf file types, respectively:
Code: Select all
MIME Filter
Extension .eml
CLSID1 {5645C8C4-E277-11CF-8FDA-00AA00A14F93}
CLSID2 {5645C8C2-E277-11CF-8FDA-00AA00A14F93}
Path C:\Windows\SysWOW64\mimefilt.dll
Size 33 792 bytes
Date Stamp 2019-12-07
Filter Version 2008.0.19041.1
Filter Provider Microsoft Corporation
Path C:\Windows\System32\mimefilt.dll
Size 40 448 bytes
Date Stamp 2019-12-07
Filter Version 2008.0.19041.1
Filter Provider Microsoft Corporation
PDF Search
Extension .pdf
CLSID1 {1AA9BF05-9A97-48c1-BA28-D9DCE795E93C}
CLDID2 {6C337B26-3E38-4F98-813B-FBA18BAB64F5}
Path C:\Windows\SysWOW64\Windows.Data.Pdf.dll
Size 6 030 336 Bytes
Date Stamp 2021-10-03
Filter Version 10.0.19041.1023
Filter Provider Microsoft Corporation
Path C:\Windows\system32\Windows.Data.Pdf.dll
Size 6 725 120 Bytes
Date Stamp 2021-10-03
Filter Version 10.0.19041.1023
Filter Provider Microsoft Corporation
Please let me know what I should do next to further assist in
diagnosing the problems and arrive at a solution.
Thanks!