I understand that names given to DeviceObjects by
drivers with
IoCreateDevice can’t be seen by Win32 applications so a
symbolic name needs to be set up. But Win32
applications don’t see the symbolic
names either! If I create the symbolic
link \??\DEV0, for example, with IoCreateSymbolicLink, an application
can’t
find the device with
<o:p> </o:p> hDevice
CreateFile(“\??\DEV0”,
GENERIC_READ
| GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
<o:p> </o:p>
It has to use:
<o:p> </o:p>hDevice =
CreateFile(“\\.\DEV0”,
GENERIC_READ
| GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
<o:p> </o:p>Why doesn’t \??\DEV0 work and what’s
behind the \\.\DEV0
format? It looks like we’re setting up a
UNC name.
<o:p> </o:p>Thanks for any light on this.