RE: Error 0xC000003A on an IoCreateSymbolicLink() call ..-.

Hi all,

In the driver, I have replaced the “\??\MyDriver” by the string
“\DosDevices\MyDriver”. Now the driver works on both Win98SE and Win2K.

But, can someone explain me why the previous syntaxe (“\??\MyDriver”)
didn’t work? I thought the old syntaxe “\DosDevices\MyDriver” for
the Win32 links should be replaced by the one “\??\MyDriver”!!
Are “\DosDevices” and “\??” equivalent or not?

Thanks a lot for any explanations.

Regards,

Serge DE LUCA

-----Original Message-----
From: SERGE DE LUCA [mailto:xxxxx@euro.lacie.com]
Sent: Tuesday, September 26, 2000 6:27 PM
To: NT Developers Interest List
Subject: [ntdev] Error 0xC000003A on an
IoCreateSymbolicLink() call …

Hi all,

I am actually developing a driver for Win98SE and Win2K.

This driver seems to work fine on Win2K but not on Win98SE.
I have a strange issue : the call to the function
IoCreateSymbolicLink(…)
always fails with the error status 0xC000003A
(STATUS_OBJECT_PATH_NOT_FOUND).

I can’t figure out why (nor when) this call fails under Win98SE!

Has anyone any clues?

Thanks for any answers,

Serge DE LUCA

PS.: Here is the code I use :

PDEVICE_OBJECT
Drv_CreateFDO ( PDRIVER_OBJECT aDriverObjectPt )
{
UNICODE_STRING lDevNameUS;
UNICODE_STRING lLinkNameUS;
NTSTATUS lNTStatus;
PDEVICE_OBJECT lFuncDOPt;

/*
* Initialize the device’s names
*/
RtlInitUnicodeString(&lDevNameUS,L"\Device\MyDriver");
RtlInitUnicodeString(&lLinkNameUS,L"\??\MyDriver");

/*
* Create the device object
*/
lFuncDOPt = NULL;
lNTStatus = IoCreateDevice( aDriverObjectPt,
sizeof(DeviceExtension),
&lDevNameUS,
FILE_DEVICE_UNKNOWN,
0,
FALSE,
&lFuncDOPt);
if (NT_SUCCESS(lNTStatus))
{
/*
* Create the Symbolic Link
*/
lNTStatus =
IoCreateSymbolicLink(&lLinkNameUS,&lDevNameUS);

if (NT_ERROR(lNTStatus))
{
IoDeleteDevice(lFuncDOPt);
DbgPrint(“Drv : Error [0x%lX] on
IoCreateSymbolicLink(…)\n”,lNTStatus);

lFuncDOPt = NULL;
}
}
else
DbgPrint(“Drv : Error [0x%lX] on
IoCreateDevice(…)\n”,lNTStatus);

return lFuncDOPt;
}


You are currently subscribed to ntdev as: xxxxx@euro.lacie.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)