IoCreateSymbolicLink当它将返回STATUS_OBJECT_NAME_COLLISION

当我调用IoCreateSymbolicLink失败状态STATUS_OBJECT_NAME_COLLISION.I有代码在我的驱动程序,我试图创buildNT和DOS之间的符号链接名称。

通常这个错误会导致什么?

RtlInitUnicodeString( &deviceName, L"\\Device\\StreamEitor" ); RtlInitUnicodeString( &symbolicLinkName, L"\\DosDevices\\StreamEitor" ); status = IoCreateDevice( driverObject, 0, &deviceName, FILE_DEVICE_NETWORK, 0, FALSE, &gDeviceObject ); if (!NT_SUCCESS(status)) { goto Exit; } status = IoCreateSymbolicLink( &symbolicLinkName, &deviceName ); if ( !NT_SUCCESS( status )) { //IoDeleteDevice(ControlDeviceObject); DbgPrint("IoCreateSymbolicLink failed %x\n", status); goto Exit; } 

我想你忘了使用IoDeleteSymbolicLink破坏符号链接。