Thanxalot, Dave and Gunther. In the meantime, I fixed the bug that made it so fast on XP :icon_mrgreen:
; perform a dummy search to find out if the OS supports the fast flags:
FindExInfoBasic=1
invoke FindFirstFileEx, chr$("C:\NoFFx.Yet"),
FindExInfoBasic, offset wfd, 0, 0, FIND_FIRST_EX_LARGE_FETCH
invoke GetLastError <<<<<<<< I had forgotten this one :redface:
.if eax!=ERROR_INVALID_PARAMETER
add dword ptr [esi], FindExInfoBasic ; ffxInfoLevel
add dword ptr [esi+4], FIND_FIRST_EX_LARGE_FETCH ; ffxAdditionalFlags
.endif
New version attached at top of thread.
@Gunther: It searches \Masm32\Examples\* - since you had no results, that was probably the wrong drive or puter. The new version complains with a MsgBox if it doesn't find anything.
XP results:
Intel(R) Celeron(R) M CPU 420 @ 1.60GHz (MMX, SSE, SSE2, SSE3)
Microsoft Windows XP
Test FindExInfoBasic and FIND_FIRST_EX_LARGE_FETCH flags
MSI, 21:47:41
253 ms for 1000 loops, BasicInfo=0, LargeFetch=0
02.03.2013 00:51:53 \Masm32\Examples\exampl01
03.11.2012 12:16:41 \Masm32\Examples\Bill_Cravener
288 ms for 1000 loops, BasicInfo=0, LargeFetch=0
02.03.2013 00:51:53 \Masm32\Examples\exampl01
03.11.2012 12:16:41 \Masm32\Examples\Bill_Cravener
130 ms for 1000 loops, BasicInfo=0, LargeFetch=0
02.03.2013 00:51:53 \Masm32\Examples\exampl01
03.11.2012 12:16:41 \Masm32\Examples\Bill_Cravener
127 ms for 1000 loops, BasicInfo=0, LargeFetch=0
02.03.2013 00:51:53 \Masm32\Examples\exampl01
03.11.2012 12:16:41 \Masm32\Examples\Bill_Cravener
Flags are never set, i.e. it fails on XP as documented.