Hello Willem,
I could not respond directly to your response because there is a 1000 character limit on that type of message (which I exceeded) so I am responding via a new "answer".
I use a variety of tools - you might recognize one of the screenshots that I used as being Microsoft Message Analyzer (now sadly discontinued). The other two screenshots are of tools that I developed myself: one is specialized for file and registry events (which essentially just correlates I/O request and completion events and maintains FileObject/FileKey/FileName relationships) and the other just exploits as much event metadata as possible to informatively present any type of event.
If you have a copy of Microsoft Message Analyzer then that would be the best tool to use.
I used the stack tracing functionality of ETW to capture the stack when PathIsDirectory "creates" (opens) the file, when CSC namespace is first referenced and when the SMB deferred open occurs. Here they are:
fileinfo!FIETWLogFileCreate+0x173
fileinfo!FIPreCreateCallback+0x2e7b
fltMgr!FltpPerformPreCallbacks+0x2fd
fltMgr!FltpPerformPreCallbacks+0x2fd
fltMgr!FltpCreate+0x2f3
ntoskrnl!IofCallDriver+0x59
ntoskrnl!IoCallDriverWithTracing+0x34
ntoskrnl!IopParseDevice+0x62b
ntoskrnl!ObpLookupObjectName+0x78f
ntoskrnl!ObOpenObjectByNameEx+0x201
ntoskrnl!NtQueryAttributesFile+0x1e6
ntoskrnl!KiSystemServiceCopyEnd+0x25
ntdll!NtQueryAttributesFile+0x14
KernelBase!GetFileAttributesW+0x85
shlwapi!PathIsDirectoryW+0x52
csc!CscStorepLowIoCreateFile+0x135:
csc!CscStorepLowIoCreateFilePostedRoutine+0x88:
csc!CscStorepLowIoPost+0x68:
csc!CscEnpFindChild+0x166:
csc!CscEnpFindOrCreateEntryEx+0x3e0:
csc!CscEnFindOrCreateEntry+0x56:
csc!CscStorepFindOrCreateEntryEx+0x1a5:
csc!CscStoreFindEntryEx+0x46:
csc!CscCreate+0x5f3b:
rdbss!RxCollapseOrCreateSrvOpen+0x24d:
rdbss!RxCreateFromNetRoot+0x7fc:
rdbss!RxCommonCreate+0x143:
rdbss!RxFsdCommonDispatch+0x5f4:
rdbss!RxFsdDispatch+0x86:
mrxsmb!MRxSmbFsdDispatch+0xf8
ntoskrnl!IofCallDriver+0x59
mup!MupiCallUncProvider+0xb8
mup!MupStateMachine+0x59
mup!MupCreate+0x1cf
ntoskrnl!IofCallDriver+0x59
fltMgr!FltpLegacyProcessingAfterPreCallbacksCompleted+0x15e
fltMgr!FltpCreate+0x307
ntoskrnl!IoCallDriverWithTracing+0x34
ntoskrnl!IopParseDevice+0x62b
ntoskrnl!ObpLookupObjectName+0x78f
ntoskrnl!ObOpenObjectByNameEx+0x201
ntoskrnl!NtQueryAttributesFile+0x1e6
ntoskrnl!KiSystemServiceCopyEnd+0x25
ntdll!NtQueryAttributesFile+0x14
KernelBase!GetFileAttributesW+0x85
shlwapi!PathIsDirectoryW+0x52
mrxsmb20!Smb2AttemptDeferredOpen+0x104c2
mrxsmb20!MRxSmb2Create+0x20b
mrxsmb!SmbpShellCreateWithNewStack+0x22
ntoskrnl!KxSwitchKernelStackCallout+0x2e
ntoskrnl!KiSwitchKernelStackContinue
ntoskrnl!KiExpandKernelStackAndCalloutOnStackSegment+0x18e
ntoskrnl!KeExpandKernelStackAndCalloutInternal+0x33
ntoskrnl!KeExpandKernelStackAndCallout+0x15
mrxsmb!SmbShellCreate+0x20
csc!CscCreate+0x6c36
rdbss!RxCollapseOrCreateSrvOpen+0x24d:
rdbss!RxCreateFromNetRoot+0x7fc:
rdbss!RxCommonCreate+0x143:
rdbss!RxFsdCommonDispatch+0x5f4:
rdbss!RxFsdDispatch+0x86:
mrxsmb!MRxSmbFsdDispatch+0xf8
ntoskrnl!IofCallDriver+0x59
mup!MupiCallUncProvider+0xb8
mup!MupStateMachine+0x59
mup!MupCreate+0x1cf
ntoskrnl!IofCallDriver+0x59
fltMgr!FltpLegacyProcessingAfterPreCallbacksCompleted+0x15e
fltMgr!FltpCreate+0x307
ntoskrnl!IoCallDriverWithTracing+0x34
ntoskrnl!IopParseDevice+0x62b
ntoskrnl!ObpLookupObjectName+0x78f
ntoskrnl!ObOpenObjectByNameEx+0x201
ntoskrnl!NtQueryAttributesFile+0x1e6
ntoskrnl!KiSystemServiceCopyEnd+0x25
ntdll!NtQueryAttributesFile+0x14
KernelBase!GetFileAttributesW+0x85
shlwapi!PathIsDirectoryW+0x52
Gary