Alexandre Julliard : ntoskrnl: Implemented IoDeleteSymbolicLink.

Alexandre Julliard julliard at winehq.org
Tue Oct 21 07:06:02 CDT 2008


Module: wine
Branch: master
Commit: 0b560febeaf12bcec92ff45e94b99ce4ed749e8c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0b560febeaf12bcec92ff45e94b99ce4ed749e8c

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Oct 20 16:21:22 2008 +0200

ntoskrnl: Implemented IoDeleteSymbolicLink.

---

 dlls/ntoskrnl.exe/ntoskrnl.c |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 4a20d5e..c37b1f8 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -543,8 +543,28 @@ NTSTATUS WINAPI IoCreateSymbolicLink( UNICODE_STRING *name, UNICODE_STRING *targ
  */
 NTSTATUS WINAPI IoDeleteSymbolicLink( UNICODE_STRING *name )
 {
-    FIXME( "%s\n", debugstr_us(name) );
-    return STATUS_SUCCESS;
+    HANDLE handle;
+    OBJECT_ATTRIBUTES attr;
+    NTSTATUS status;
+
+    attr.Length                   = sizeof(attr);
+    attr.RootDirectory            = 0;
+    attr.ObjectName               = name;
+    attr.Attributes               = OBJ_CASE_INSENSITIVE;
+    attr.SecurityDescriptor       = NULL;
+    attr.SecurityQualityOfService = NULL;
+
+    if (!(status = NtOpenSymbolicLinkObject( &handle, 0, &attr )))
+    {
+        SERVER_START_REQ( unlink_object )
+        {
+            req->handle = handle;
+            status = wine_server_call( req );
+        }
+        SERVER_END_REQ;
+        NtClose( handle );
+    }
+    return status;
 }
 
 




More information about the wine-cvs mailing list