I've got locations of interest in my two hard-drives indexed by Windows Search. Occasionally SearchProtocolHost.exe (Windows search indexing service) intensively re-reads the drives for no apparent reason. This happens once a day or so, even though indexing has long completed,
Using ProcessExplorer, I timed how long the drive is intensively re-read and at what rate. I found that Windows Indexing Service reads on the order of 350 GB (!) from the drive. That corresponds to about the entire indexed dataset of my SSD drive. I also have a second drive, an HDD one; though Windows does not seem to periodically re-index it.
1. Why does Windows periodically re-read so much data from the drive, even though indexing was already completed?
2. Why does Windows re-index only data from the SSD drive, and not from the HDD drive? (or so it seems)
I'm working on a rather new HP ProBook Laptop, Windows 10 Pro, version 1709.
Call stack of SearchProtocolHost.exe during indexing operation (using ProcessExplorer):
ntoskrnl.exe!KeSynchronizeExecution+0x5c46 ntoskrnl.exe!KeWaitForSingleObject+0x1070 ntoskrnl.exe!KeWaitForSingleObject+0x9ee ntoskrnl.exe!KeWaitForSingleObject+0x1c9 ntoskrnl.exe!KeInsertQueueApc+0x973 ntoskrnl.exe!KeWaitForSingleObject+0x2c10 ntoskrnl.exe!KiCheckForKernelApcDelivery+0x25 ntoskrnl.exe!PsLookupThreadByThreadId+0x1d2f ntoskrnl.exe!setjmpex+0x6f33 ntdll.dll!NtAlpcSendWaitReceivePort+0x14 RPCRT4.dll!RpcServerInqCallAttributesW+0x1e1a RPCRT4.dll!RpcServerInqCallAttributesW+0x365f RPCRT4.dll!RpcServerInqCallAttributesW+0x421e RPCRT4.dll!RpcServerInqCallAttributesW+0x573d RPCRT4.dll!RpcServerInqCallAttributesW+0x106e RPCRT4.dll!RpcServerInqCallAttributesW+0x2793 RPCRT4.dll!RpcBindingSetAuthInfoExW+0x448 ntdll.dll!RtlSetThreadWorkOnBehalfTicket+0x237e ntdll.dll!RtlSetThreadWorkOnBehalfTicket+0x8f6 KERNEL32.DLL!BaseThreadInitThunk+0x14 ntdll.dll!RtlUserThreadStart+0x21