ZwCreateFile returns STATUS_SHARE_VIOLATION

Hi, all
Recently, I got a problem in Vista.
My driver communicate with the server through tdi.
But when I create a file object with ZwCreateFile and device name
\Device\Udp <file:>,
It returns STATUS_SHARE_VIOLATION.
I just don’t know why?
The code I use as below:
Status = ZwCreateFile(&hFile,
GENERIC_READ | GENERIC_WRITE,
&Attributes,
&IoStatus,
NULL,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_READ | FILE_SHARE_WRITE,
FILE_OPEN,
0,
ea,
(ULONG)ea.Sizeof());
The returned Status was STATUS_SHARE_VIOLATION sometimes, not every time.
I’m wondering which thread opened the device
\Device\Udp<file:>in a way I cannot open it.
And this code works fine in XP, I didn’t install any anti-virus software in
my Vista system.
I also referenced the link below
http://www.osronline.com/showthread.cfm?link=103144
and tried to use GENERIC_READ|GENERIC_WRITE|SYNCHRONIZE, but it didn’t work.</file:></file:>