http://bugs.winehq.org/show_bug.cgi?id=5099
------- Additional Comments From saulius.krasuckas@elst.vtu.lt 2006-23-04 13:07 ------- | looks like device 9 is really my cd device
Not exactly, Bernd. "device=9" refers to the device type (that is to FILE_DEVICE_FILE_SYSTEM) based on which FSCTL_[UN]LOCK_VOLUME consts are defined. And the actual reference is a handle to the "\.\D:" (0xd8) :
| 0009:trace:file:CreateFileW L"\\.\D:" GENERIC_READ FILE_SHARE_READ | FILE_SHARE_WRITE creation 3 attributes 0x0 ... | 0009:trace:file:CreateFileW returning 0xd8 | 0009:trace:ntdll:NtFsControlFile | 0xd8,(nil),(nil),(nil),0x7fbbee44,0x00090018,(nil),0x00000000,(nil),0x00...) | 0009:fixme:ntdll:NtFsControlFile Unsupported fsctl 90018 (device=9 access=0 | func=6 method=0) | | /dev/hdc is my cd device
Fine. Now it would be nice to run some test on real Windows:
handleC = CreateFileW("\.\C:", ...); handleD = CreateFileW("\.\D:", ...); NtQueryObject(handleC, Object...Information , ...); NtQueryObject(handleD, Object[Type|Name]Information, &ObjectInformation, ...);
/* Then print some fields of the returned ObjectInformation struct ... */ /* so we could see the difference between handles to C: and to D: */
res = NtFsControlFile(handleD, FSCTL_LOCK_VOLUME, ...);
IMHO, this could be a start for additional ntdll-tests. Vitaliy, what do you think?