2013-04-23 116 views
3

當我調用IoCreateSymbolicLink失敗狀態STATUS_OBJECT_NAME_COLLISION.I有代碼在我的驅動程序,我試圖創建NT和DOS之間的符號鏈接名稱。IoCreateSymbolicLink當它將返回STATUS_OBJECT_NAME_COLLISION

當通常這個錯誤會導致?

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; 

} 

回答

1

我想你忘記了銷燬使用IoDeleteSymbolicLink符號鏈接。

相關問題