Module: wine Branch: master Commit: 0b560febeaf12bcec92ff45e94b99ce4ed749e8c URL: http://source.winehq.org/git/wine.git/?a=commit;h=0b560febeaf12bcec92ff45e94...
Author: Alexandre Julliard julliard@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; }