Wenn ich die Dokumentation richtig verstehe, ist 0
sogar noch besser
Hat mich jetzt mal interessiert, was denn der Unterschied ist. Und siehe da...
Im Code von CreateFileW wird vor dem Aufruf von NtCreateFile der "
Access" Parameter mit 0x00100080 ge-OR-t. Das wäre also NtCreateFile(
Access or (SYNCHRONIZE or FILE_READ_ATTRIBUTES), ...).
Zitat:
or eax,$00100080
push dword ptr [esp+$1c]
mov [esp+$28],eax
push dword ptr [ebp+$08]
push ecx
push $00
lea ecx,[esp+$40]
push ecx
lea ecx,[esp+$0080]
push ecx
push eax
lea eax,[esp+$48]
push eax
call dword ptr [$768700c4] => NtCreateFile
Auch im
wine Code findet man dies.
0 hat also die gleiche Bedeutung wie "SYNCHRONIZE or FILE_READ_ATTRIBUTES". Es ist jetzt also nur Geschmackssache ob "CreateFile(FILE_READ_ATTRIBUTES, ...)" oder "CreateFile(0, ...)" eine besser Aussage trifft, was die Intention des Codes ist.