当我调用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
破坏符号链接。